Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 AS3 Can';t在舞台上访问MC_Actionscript 3 - Fatal编程技术网

Actionscript 3 AS3 Can';t在舞台上访问MC

Actionscript 3 AS3 Can';t在舞台上访问MC,actionscript-3,Actionscript 3,我有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.

我有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]);
}

}

要按名称访问它,您必须在创建它们时为它们指定一个名称

mc85.name = "mc85";
作为我推荐的另一种选择,您可以使用
getChildAt(index)
:()


另外,我强烈建议您创建一个空的movieclip或sprite,并将所有这些MC添加到它们中,而不是根。

答案非常简单,使用
DisplayObjectContainer
对象,在本例中为
root
getChildByName()
方法,例如:

var sprite1:Sprite = new Sprite();
sprite1.name = "sprite1";
addChild(sprite1);
trace((root as DisplayObjectContainer).getChildByName("sprite1").name); // output : sprite1

首先,最好将舞台上的电影剪辑以数组形式存储。

我用一个名字创建了MC。我已经添加了一些代码来展示我是如何做到的,以防我在那里也搞砸了!好啊这没什么错。虽然getChildAt()会快得多。谢谢。我刚刚在另一个上下文中使用了getChildAt,它工作得很好。谢谢
var sprite1:Sprite = new Sprite();
sprite1.name = "sprite1";
addChild(sprite1);
trace((root as DisplayObjectContainer).getChildByName("sprite1").name); // output : sprite1