Arrays 将实例从一个数组添加到另一个movieclip

Arrays 将实例从一个数组添加到另一个movieclip,arrays,adobe,export,actionscript-2,instance,Arrays,Adobe,Export,Actionscript 2,Instance,我做ActionScript3.0编程,对此我非常了解。我有一个ActionScript2.0项目,我遇到了一个简单的问题,就是如何将实例添加到该阶段。在ActionScript3.0中,当我想向某个电影剪辑添加多个实例时,首先将它们保存在一个数组中,然后使用该数组设置X和Y、宽度、alpha和其他细节 例如: “itemBlock”是我的实例,它是库中导出的movieclip for ( var i = 0 ; i < 24 ; i++ ) { blockBANK[i] = new it

我做ActionScript3.0编程,对此我非常了解。我有一个ActionScript2.0项目,我遇到了一个简单的问题,就是如何将实例添加到该阶段。在ActionScript3.0中,当我想向某个电影剪辑添加多个实例时,首先将它们保存在一个数组中,然后使用该数组设置X和Y、宽度、alpha和其他细节

例如:

itemBlock
”是我的实例,它是库中导出的movieclip

for ( var i = 0 ; i < 24 ; i++ ) {
blockBANK[i] = new itemBlock(); // itemBlock is an exported movieclip in the library. 
blockBANK[i].x = // some calculation;
blockBANK[i].y = // some other calculation;
mainPage_mc.addChild(blockBANK[i]); // add to the mainPage_mc  holder
}
for(变量i=0;i<24;i++){
blockBANK[i]=new itemBlock();//itemBlock是库中导出的movieclip。
blockBANK[i].x=//一些计算;
blockBANK[i].y=//其他一些计算;
mainPage_mc.addChild(blockBANK[i])//添加到mainPage_mc holder
}
现在我可以使用这个数组在AS3代码的任何地方添加和编辑我的实例。 在AS2中,我尝试了这些,但不起作用,而且没有编译器错误

for (var i=0;i<7;i++) { 
    var temp:MovieClip = new MovieClip();
    temp.attachMovie("itemBlock "," itemBlock "+i,0); 
    textboxBANK[i].addChild(temp);
    textboxBANK[i]._y = 40; 
    textboxBANK[i]._x = i * 20; 
    mainPage_mc.addChild(textboxBANK[i]);// add to holder
}

for(var i=0;i据我所知,您可以在AS2中使用createEmptyMovieClip方法创建新的MovieClip。此外,AS2中不支持addChild方法

AS2显示列表与AS3显示列表大不相同。显示对象仅在舞台上时存在(与AS3不同,在AS3中,您可以使用存储的显示对象遍历显示树)。简言之,如果您尝试将MovieClips存储在数组中,稍后添加到舞台,则不可能

你需要做的是将它们添加到stage中,弄乱它们的*_visible*属性。然后在稍后的阶段使它们可见。下面是一些代码,基于我理解你想要做的事情

var tempClips:Array = new Array();

for(var i = 0; i < 10; i++){

    var temp = mainStage.createEmptyMovieClip("temp"+i, mainStage.getNextHighestDepth());

    var temp_inner = temp.attachMovie("exportedLibrarySymbol", "temp_inner", temp.getNextHighestDepth());

    temp._visible = false; //or true if you want them to be seen instantly

    temp._x = someCalculation;
    temp._y = someCalculation;

    tempClips.push(temp);

}
var-tempciples:Array=newarray();
对于(变量i=0;i<10;i++){
var temp=mainStage.createEmptyMovieClip(“temp”+i,mainStage.getNextHighestDepth());
var temp_inner=temp.attachMovie(“exportedLibrarySymbol”,“temp_inner”,temp.getNextHighestDepth());
temp._visible=false;//如果希望立即看到它们,则为true
温度_x=某些计算;
温度y=一些计算;
临时夹。推(临时);
}
请注意,在AS2中,如果尝试以相同的深度向后台添加内容,原始显示对象将消失。请使用getNextHighestDepth方法精确计算正确的整数

更好地描述您正在尝试做的事情将非常有帮助

var tempClips:Array = new Array();

for(var i = 0; i < 10; i++){

    var temp = mainStage.createEmptyMovieClip("temp"+i, mainStage.getNextHighestDepth());

    var temp_inner = temp.attachMovie("exportedLibrarySymbol", "temp_inner", temp.getNextHighestDepth());

    temp._visible = false; //or true if you want them to be seen instantly

    temp._x = someCalculation;
    temp._y = someCalculation;

    tempClips.push(temp);

}