如何检索舞台中的所有MC?如何在AS3中检索舞台中的所有MC?
我想调用addEventListener所有影片剪辑出现在我的舞台,如果它在我的情况的选择的帧数可能 类似的东西伪代码
for(i=0; nbOfChild ; i++)
if(stage.childAt(i) is MC and isInTheFrameWithLabel('foo'))
stage.childAt(i).addEventListerner(MyStuff)
如何检索舞台中的所有MC?如何在AS3中检索舞台中的所有MC?
我想调用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);
}
}
你能详细说明你在做什么吗?好奇。我的意思是,如果您想知道触发事件的MovieClip,则可以在解析到侦听器功能的事件中使用** target **属性。 – Marty
我不明白你为什么使用数组? –
谢谢你,我只是找到了解决办法(下同) –
我
2011-08-04 09:13:50
@Ascension Systems什么?如果你的意思是我应该这样做,你最终只会有一个孩子:[对象MainTimeline] – Marty