我已经做了一百万次了,但是在这里没有用。
我在animate.fla中有一个game_mc。在此剪辑中,我生成了一个视图目标区域以在其上放置石头。好的,TargetArea是我库中的一个简单的Movieclip。
我可以看到所有内容,我可以单击该区域并获得适当的名称,我可以获取game_mc中的剪辑名称。
但是我无法通过使用game_mc [clipname]
来访问它for (var i:int = 1; i<= 20; i++){
var targetArea:TargetArea = new TargetArea();
targetArea.txt.text = String(i);
var modu = ((i-1) %5);
targetArea.x = 100 + modu * 340;
var abs = int((i-1) / 5);
targetArea.name = "targetarea_" + String(i)+ "_mc";
targetArea.mouseChildren = false;
targetArea.y = 100 + (abs * 200) ;
game_mc.addChild(targetArea);
}
for(var x:int=0;x < game_mc.numChildren;x++) {
trace (game_mc.getChildAt(x).name);
}
for (var i:int = 1; i< 20; i++){
var targetName:String = "targetarea_" + i + "_mc"
trace( game_mc[targetName].x);
}
答案 0 :(得分:0)
我认为您分配给TargetArea实例的名称不会自动转换 附加到DisplayObject的属性中。据我记得 使用数组访问(通常在AS3之前运行)的非固定方式访问MovieClips。 更为优雅的解决方案是使用getChildByName()检索孩子。
trace(game_mc.getChildByName(targetName).x);
另外,如果game_mc是MovieClip或动态类的实例,则可以使用以下方法使TargetArea实例成为其属性:
game_mc[targetArea.name] = targetArea;
这样,您之后便可以使用 game_mc [name] .property 来访问它们。