动作脚本循环

时间:2014-11-28 09:54:43

标签: actionscript-3 flash loops

我刚开始使用 actionscript 3 ,我想知道是否有可能简化此代码并创建某种循环,因此每当我导入时我都可以轻松复制该函数一个新按钮。

代码是这样的:

videobutton.addEventListener(MouseEvent.CLICK, fl_OpenVideo);
gallerybutton.addEventListener(MouseEvent.CLICK, fl_OpenGallery);
contactbutton.addEventListener(MouseEvent.CLICK, fl_OpenContact);

function fl_OpenVideo(event:MouseEvent):void{
if (!(currentClip is Vids))
   {
       currentClip.play();
        var newClip:Vids = new Vids;
        addChild(newClip);
        newClip.play();
        newClip.y =140;
        currentClip =  newClip;
   }
}
function fl_OpenGallery(event:MouseEvent):void
{   
    if (!(currentClip is Gal))
   {
    currentClip.play();
    var newClip:Gal = new Gal;
    addChild(newClip);
    newClip.play();
    newClip.y =140;
    currentClip =  newClip; 
   }
}
function fl_OpenContact(event:MouseEvent):void
{   
    if (!(currentClip is Con))
   {
    currentClip.play();
    var newClip:Con = new Con;
    addChild(newClip);
    newClip.play();
    newClip.y =140;
    currentClip =  newClip; 
   }
}

1 个答案:

答案 0 :(得分:1)

你可以这样做:

videobutton.addEventListener(MouseEvent.CLICK, fl_Open);
gallerybutton.addEventListener(MouseEvent.CLICK, fl_Open);
contactbutton.addEventListener(MouseEvent.CLICK, fl_Open);

const S:Sprite = new Sprite();
S.y = 140;
this.addChild(S);
var __last:*;

function fl_Open(event:MouseEvent):void
{
    while(S.numChildren > 0) S.removeChildAt(0);
    if(event.target == videobutton) __last = new Vids;
    if(event.target == gallerybutton) __last = new Gal;
    if(event.target == contactbutton) __last = new Con;
    __last.play();
    S.addChild(__last);
}