繁体   English   中英

如何在AS3的阶段中检索所有MC?

[英]How can I retrieve all MC in a Stage in AS3?

如何在阶段中检索所有MC?

我想为场景中存在的所有MovieClip调用addEventListener,如果有可能在我的方案选定帧号中调用它,则类似于该伪代码

for(i=0; nbOfChild ; i++)
   if(stage.childAt(i) is MC and isInTheFrameWithLabel('foo') )
     stage.childAt(i).addEventListerner(MyStuff)

几乎就是您所拥有的。

for(var i:int = 0; i<numChildren; i++)
{
    var e:DisplayObject = getChildAt(i);
    if(e is MovieClip)
    {
        // do stuff with e
        trace(e);
    }
}

您也可以成为一个棘手的骗子,并执行以下操作:

/**
 * Iterate through MovieClips within a container and parse them through handler
 * @param container The container to iterate through and find MovieClips in
 * @param handler A function that accepts MovieClip as its only parameter
 */
function each(container:DisplayObjectContainer, handler:Function):void
{
    for(var i:int = 0; i<container.numChildren; i++)
    {
        var e:DisplayObject = container.getChildAt(i);
        if(e is MovieClip) handler(e);
    }
}

// Example
each(this, function(mc:MovieClip):void
{
    trace(mc);
    mc.x += 10;
});

您还应该将这些影片剪辑推送到数组中,以了解触​​发事件的影片剪辑,因此您需要:

var holdObjects:Array = new Array();
for(var i:int = 0; i<numChildren; i++)
{
    var e:DisplayObject = getChildAt(i);
    if(e is MovieClip)
    {
        // do stuff with e
        trace(e);
        e.addEventlistene(...);
        holdObjects.push(e);
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM