添加新的儿童动画片段

时间:2015-05-14 23:30:55

标签: actionscript-3 if-statement for-loop actionscript movieclip

我正在尝试使用立方体movieclip来创建自己的另一个实例,然后将其添加到前一个坐标旁边的舞台上。但是,我不能让它继续增加更多的孩子/无法弄清楚如何访问孩子的坐标。我尝试添加一个新的movieclip:mc for循环的每次迭代,每次垂直和水平计数50,然后,在不同的思考过程中,我尝试每个循环添加一个新的子,但我不知道如何访问该子项属性。任何帮助,将不胜感激。谢谢。

var countV:int=600;
var countH:int=600;
stage.addChild(havenAlpha);
var moveHOrV:Boolean=true;
var mc:MovieClip = new haven_Expand();
for(var i:int=0; i<=5; i++){

            if(moveHOrV == false){
                stage.addChild(mc);
                countH=countH-50;
                mc.x= countH;
                moveHOrV=true;

            }else if(moveHOrV == true){
                stage.addChild(mc);
                countV=countV-50;
                mc.y=countV;
                moveHOrV=false;
            }

            trace(countV,countH,moveHOrV,i);

            stage.addChild(new haven_Expand())
            stage.addChildAt(new haven_Expand(),countH);


        }

1 个答案:

答案 0 :(得分:1)

在大多数面向对象的语言中,变量只是指向实际对象的指针。因此,改变存储在变量中的内容实际上并不会使先前存储的内容消失。

为此,您可以只使一个var存储每次迭代创建的每个新对象。像这样:

stage.addChild(havenAlpha);

//this var will store the clip from the preivous iteration, but we'll start it off with the first item
var prevClip:MovieClip = new haven_Expand();
prevClip.x = 600;
prevClip.y = 600;
stage.addChild(prevClip);

var curClip:MovieClip; //used in the loop below to hold the current iterations item

for(var i:int=0; i<=5; i++){
    curClip = new haven_Expand();//create new clip
    stage.addChild(curClip); //add it to the stage
    if(i % 2){ // % (modulous) gives you the remainder of the division, so this effectively will be false (0) every other time
        curClip.x = prevClip.x - curClip.width; //place this new clip just to the left of the last iteration's clip
        curClip.y = prevClip.y;
    }else if(moveHOrV == true){
        curClip.y = prevClip.y - curClip.height; //place this new clip just on top of the last iteration's clip
        curClip.x = prevClip.x;
    }

    prevClip = curClip;
}

我不确定x / y数学是否符合您的要求。这将使它们以对角线方式分布。你真的想要水平行吗?如果需要,我可以更新以告诉您。