在as3中,如何遍历DisplayObjectContainer中的所有childs?我想要这样的语法:
for each(var displayObject:DisplayObject in displayObjectContainer )
{
displayObject.x += 10;
displayObject.y += 10;
}发布于 2009-08-06 19:00:09
不确定for each是否有效,但这是有效的。
for (var i:int = 0; i<myObj.numChildren; i++)
{
trace(myObj.getChildAt(i));
}发布于 2009-08-06 19:01:25
也许是这样的东西?
function getChildren(target:DisplayObjectContainer):Array {
var count:uint = target.numChildren;
var ret:Array = [];
for (var i:int = 0; i < count; i++)
ret.push(target.getChildAt(0));
return ret;
} 然后
for each (var child:Array in getChildren(displayObjectContainer)) {
//....
}问候
back2dos
发布于 2009-08-09 12:36:08
您可以使用下面的递归函数来遍历任何DisplayObjectContainer类的所有子类。
function getChildren(dsObject:DisplayObjectContainer, iDepth:int = 0):void
{
var i:int = 0;
var sDummyTabs:String = "";
var dsoChild:DisplayObject;
for (i ; i < iDepth ; i++)
sDummyTabs += "\t";
trace(sDummyTabs + dsObject);
for (i = 0; i < dsObject.numChildren ; ++i)
{
dsoChild = dsObject.getChildAt(i);
if (dsoChild is DisplayObjectContainer && 0 < DisplayObjectContainer(dsoChild).numChildren)
getChildren(dsoChild as DisplayObjectContainer,++iDepth);
else
trace(sDummyTabs + "\t" + dsoChild);
}
}它将以与DisplayList树完全相同的分层方式显示所有子对象。
https://stackoverflow.com/questions/1240678
复制相似问题