如何在AS3中的舞台中检索所有MC?

Chr*_*ove 1 flash actionscript-3 flash-cs5

如何在舞台中检索所有MC?

我想为我的舞台中存在的所有MovieClip调用addEventListener,如果可以在我的场景选定帧编号中调用 类似伪代码的东西

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

Mar*_*rty 9

几乎就是你拥有的......

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

你也可能是一个棘手的骗子,并做这样的事情:

/**
 * 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;
});
Run Code Online (Sandbox Code Playgroud)

  • 当您尝试使用Flash CS*Pro中的时间轴上编写的代码时?还是在DocumentClass中?我知道如果你在时间线上编写代码,编译器/ IDE会把所有这些东西合并在一起会产生一些疯狂,是的,你会得到一个MainTimeline参考.那好吧. (2认同)