Thread: MaskMenu
View Single Post

  #32 (permalink)  
Old 04-06-08, 16:03
Flep Flep is offline
Administrator
 
Join Date: Jul 2007
Location: Cesena
Posts: 4,488
Rep Power: 6
Flep is on a distinguished road
Re: MaskMenu

Usando dei links alle voci, il mio Main.as č cosė:
Code:
package org.flepstudio
{
	import flash.display.MovieClip;
	import flash.events.Event;
	import flash.events.MouseEvent;
	import flash.net.*;
	import caurina.transitions.Tweener;
	
	public class Main extends MovieClip
	{
		private var menu_array:Array;
		private var links_array:Array;
		
		private var distance:int=80;
		private var id:int=0;
		
		private var isFirst:Boolean=true;
		
		public function Main()
		{
			addEventListener(Event.ADDED_TO_STAGE,init);
		}
		
		private function init(evt:Event):void
		{
			removeEventListener(Event.ADDED_TO_STAGE,init);
			
			stage.frameRate=31;
			
			menu_array=new Array(menu_mc.item1_mc,menu_mc.item2_mc,menu_mc.item3_mc,menu_mc.item4_mc,menu_mc.item5_mc,menu_mc.item6_mc);
			links_array=new Array('http://www.flepstudio.org/','http://www.flepstudio.org/','http://www.flepstudio.org/','http://www.flepstudio.org/','http://www.flepstudio.org/','http://www.flepstudio.org/');
			
			addMenuListeners();
		}
		
		private function addMenuListeners():void
		{
			for(var i:int=0;i < menu_array.length;i++)
			{
				menu_array[i].mouseChildren=false;
				menu_array[i].buttonMode=true;
				menu_array[i].startY=menu_array[i].y;
				menu_array[i].id=i;
				menu_array[i].addEventListener(MouseEvent.MOUSE_OVER,setOver);
				menu_array[i].addEventListener(MouseEvent.MOUSE_DOWN,doSomething);
			}
			
			menu_mc.strip_mc.y=menu_array[0].height;
			menu_mc.strip_mc.alpha=0;
			menu_mc.mask_mc.scaleY=0;
			
			addHitsListeners();
		}
		
		private function addHitsListeners():void
		{
			for(var i:int=0;i < menu_mc.strip_mc.numChildren;i++)
			{
				if(menu_mc.strip_mc.getChildAt(i) is MovieClip)
				{
					var clip:MovieClip=menu_mc.strip_mc.getChildAt(i) as MovieClip;
					clip.mouseChildren=false;
					clip.buttonMode=true;
					clip.addEventListener(MouseEvent.MOUSE_DOWN,doSomething);
				}
			}
		}
		
		private function setOver(evt:MouseEvent):void
		{
			id=evt.target.id;
			for(var i:int=0;ievt.target.id)
					Tweener.addTween(menu_array[i],{y:menu_array[i].startY+distance,time:0.3,transition:"easeOutQuad"});
				else
					Tweener.addTween(menu_array[i],{y:menu_array[i].startY,time:0.3,transition:"easeOutQuad"});
			}
			moveMask();
			moveStrip();
			isFirst=false;
		}
		
		private function moveMask():void
		{
			if(isFirst)
			{
				Tweener.addTween(menu_mc.mask_mc,{scaleY:1,time:0.3,transition:"easeOutQuad"});
				Tweener.addTween(menu_mc.strip_mc,{alpha:1,time:1,transition:"easeOutQuad"});
			}
			Tweener.addTween(menu_mc.mask_mc,{y:menu_array[id].startY+menu_array[id].height+5,time:0.3,transition:"easeOutQuad"});
		}
		
		private function moveStrip():void
		{
			Tweener.addTween(menu_mc.strip_mc,{y:-distance*id+menu_array[id].startY+menu_array[id].height+5,time:0.6,transition:"easeOutQuad"});
		}
		
		private function doSomething(evt:MouseEvent):void
		{
			var request:URLRequest=new URLRequest(links_array[id]);
			navigateToURL(request,'_self');
		}
	}
}
__________________

 


I recommend: Essential Actionscript 3.0

- Non rispondo ai messaggi privati con domande tecniche. Apri una discussione sul forum !
- I do not reply technicians pvt messages. Open a thread !

Last edited by Flep; 04-06-08 at 16:57..
Reply With Quote