我有以下问题。如果有人煞费苦心地回答它,我将不胜感激。
问题描述:我有一个顶级精灵" TopLevel", 它下面有一个精灵" allRoutes", 它下面有儿童雪碧"路线"和 在它下面还有另一个孩子"路线"。
我想在循环中访问每个级别。我试过在ActionScript中做到这一点,但没有成功。
这是可能的代码(未成功编译):
package
{
import flash.display.Sprite;
public class TopLevel extends Sprite {
public function TopLevel() {
var allRoutes:Sprite = new Sprite();
for (i = 0; i < 3; i++) {
var routes:Sprite = new Sprite();
for (j = 0; j < 4; j++) {
var route:Sprite = new Sprite();
route.name = "Route:" + i + ", " j;
routes.addChild(route);
}
routes.name = "Routes:" + i;
allRoutes.name = "AllRoutes";
allRoutes.addChild(routes);
}
addChild(allRoutes);
trace (allRoutes.name);
for (i = 0; i < allRoutes.numChildren; i++) {
trace(allRoutes.getChildAt(i).name);
for (j = 0; j < allRoutes.getChildAt(i).numChildren; j++) {
trace(allRoutes.getChildAt(i).getChildAt(j).name);
}
}
}
}
}
我期待以下结果:
AllRoutes
路线-1
路线-1,
路线-1,
路线-1,3
路线-1,4
路线-2
路线-2,
路线-2,
路线2,3,
路线-2,4
等......
希望你能得到这张照片。 非常感谢你提前。
感谢和问候
rr23850
答案 0 :(得分:0)
在全球范围内,您的代码很好,除了一些小东西:
i
和j
变量:var i:int, j:int;
j
之前的连接运算符:route.name = "Route:" + i + ", " + j;
allRoutes.getChildAt(i).numChildren
和
allRoutes.getChildAt(i).getChildAt(j).name
在这种情况下可以:
for (j = 0; j < Sprite(allRoutes.getChildAt(i)).numChildren; j++) { trace(Sprite(allRoutes.getChildAt(i)).getChildAt(j).name); }
...
当for
循环以0
开头时,你会得到这样的结果:
AllRoutes Routes:0 Route:0, 0 Route:0, 1 Route:0, 2 Route:0, 3 Routes:1 Route:1, 0 Route:1, 1 ...
希望可以提供帮助。