|
Riferimento: Re: MaskMenu
|
|
Quote:
Originally Posted by Flep
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[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 {
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;i {
if(i!=evt.target.id&&i>evt.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');
}
}
}
|
il mio Main.as è così:
Code:
package org.flepstudio
{
import flash.display.MovieClip;
import flash.events.Event;
import flash.events.MouseEvent;
import caurina.transitions.Tweener;
import flash.net.URLRequest;
import flash.net.navigateToURL;
public class Main extends MovieClip
{
private var menu_array:Array;
private var distance:int=80;
private var id:int=0;
private var isFirst:Boolean=true;
private var urls_array:Array;
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);
urls_array=new Array('http://www.flepstudio.org/','http://www.flepstudio.org/forum/','http://www.flepstudio.org/utilita/StripGallery/','http://www.flepstudio.org/forum/sendmessage.php', 'http://www.flepstudio.org/english/contact.html','http://www.flepstudio.org/english/option,com_sefservicemap/Itemid,69.html');
}
private function addMenuListeners():void
{
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();
request.url=urls_array[id];
navigateToURL(request,'self');
trace(id);
}
}
}
P.S. Questa volta gli errori sono i seguenti:
1084: Errore di sintassi: è previsto semicolon prima di rightparen.
1083: Errore di sintassi: non è previsto else.
1083: Errore di sintassi: non è previsto rightparen. |
Last edited by Flep; 04-06-08 at 15:58.
|