我刚开始使用 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;
}
}
答案 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);
}