DisplayObjectContainer内のすべての子をas3でどのようにループしますか?私はこのような構文をしたい:actionscript-3の子をループする
for each(var displayObject:DisplayObject in displayObjectContainer)
{
displayObject.x += 10;
displayObject.y += 10;
}
DisplayObjectContainer内のすべての子をas3でどのようにループしますか?私はこのような構文をしたい:actionscript-3の子をループする
for each(var displayObject:DisplayObject in displayObjectContainer)
{
displayObject.x += 10;
displayObject.y += 10;
}
それぞれが動作するかどうかわからないが、これは動作します。
for (var i:int = 0; i<myObj.numChildren; i++)
{
trace(myObj.getChildAt(i));
}
このようなものがありますか?
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)) {
//....
}
greetz
back2dos
あなたはどの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ツリーと同様に階層的に表示します。
私の2セントです。
public static function traceDisplayList(displayObject:DisplayObject, maxDepth:int = 100, skipClass:Class = null, levelSpace:String = " ", currentDepth:int = 0):void
{
if (skipClass != null) if (displayObject is skipClass) return;
trace(levelSpace + displayObject.name); // or any function that clean instance name
if (displayObject is DisplayObjectContainer && currentDepth < maxDepth)
{
for (var i:int = 0; i < DisplayObjectContainer(displayObject).numChildren; i++)
{
traceDisplayList(DisplayObjectContainer(displayObject).getChildAt(i), maxDepth, skipClass, levelSpace + " ", currentDepth + 1);
}
}
}
OPが尋ねた内容に関しては、少し複雑すぎます。 – Florent