0

我正在学习 Actionscript,我有点卡在 for 循环上。

我有这个代码,

movieClip.thumbnail1.addEventListener(MouseEvent.CLICK ,myBtn1);
function myBtn1(evt:MouseEvent):void
{

     var myMC:MC1 = new MC1();
     mcPlacement.addChild(myMC);
}

movieClip.thumbnail2.addEventListener(MouseEvent.CLICK ,myBtn2);
function myBtn2(evt:MouseEvent):void
{

     var myMC2:MC2 = new MC2();
     mcPlacement.addChild(myMC2);
}

我想知道,你如何使用 for 循环将它们堆叠起来,这样我就可以运行超过 10 个按钮而不必输入很长的路,我也应该使用数组吗?

4

1 回答 1

0

如果movieClip 仅包含您要为其添加事件侦听器的thumbNails,那么您可以执行以下操作:

private function addEventListeners():void
{
    for(var i=0; i<movieClip.numChildren; i++)
    {
        var dp:DisplayObject = movieClip.getChildByIndex(i) as DisplayObject;
        dp.addEventListener(MouseEvent.CLICK,onThumbNailClicked);
    }
}

private function onThumbNailClicked(e:MouseEvent):void
{
    trace("Clicked : "+e.target.name);

}

如果您事先知道缩略图的名称,您可以在事件处理程序中创建不同的影片剪辑并将它们添加到 mcPlacement。

private function onThumbNailClicked(e:MouseEvent):void
{
    var mcs:Object = {
        "thumbNail1":MC1,
        "thumbNail2":MC2
    };
    trace("Clicked : "+e.target.name);
    var mc:MovieClip = new mcs[e.target.name]();
    mcPlacement.addChild(mc);
}
于 2012-08-20T15:58:16.970 回答