我在舞台上有54个MC,动态生成。现在我想在滚动时获得他们的x和y位置,但是我遇到了使路径正确的问题,例如。
function copyFlightCellData():void {
var r; var s;
var cellData:Array = new Array ();
for (r = 0; r < 54; r++){
//var copyCellData = new MovieClip();
cellData[r] = Object(root).mc85.name; //["mc"+r+r];
trace("$$$$$$$$$$$$$$$$$$$$$" + cellData[r]);
}
}
我在调试中使用了列表对象,它们列在_level0中。例如
影片片段:帧= 1目标=“_ level0.mc85”
不确定为什么我无法访问他们的属性。
这是创建MC的代码
// Create copies of flightCell for board grid
var my_mc = new flightCell();
my_mc.name = "mc" + i + j;
trace("^^^^^^^^^^^^^^****************" + my_mc.name);
addChild(my_mc);
答案 0 :(得分:1)
答案非常简单,请使用DisplayObjectContainer
对象,在本例中为root
,getChildByName()
方法,例如:
var sprite1:Sprite = new Sprite();
sprite1.name = "sprite1";
addChild(sprite1);
trace((root as DisplayObjectContainer).getChildByName("sprite1").name); // output : sprite1
将您在舞台上的动画片段以数组形式存储起来可能更好一点。
答案 1 :(得分:0)
要按名称访问它,您必须在创建它们时为其指定名称。
mc85.name = "mc85";
作为我推荐的替代方案,您可以使用getChildAt(index)
:http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/DisplayObjectContainer.html?filter_flash=cs5&filter_flashplayer=10.2&filter_air=2.6#getChildAt()
另外,我强烈建议你创建一个空的movieclip或sprite,并将所有这些mcs添加到它们而不是root。