如何在不使用“this”关键字的情况下循环实例名称?

时间:2013-05-25 12:03:06

标签: actionscript-3 loops instance movieclip get-childitem

我创建了一个正方形,并将其保存为名为starContainer的动画片段,我在舞台上将其中的三个分开,并在我的flash cs6中给出了每个实例名称 - goldStarContainer1,goldStarContainer2和goldStarContainer3。

在我的图书馆里,我还有一个名为goldStar的金星影片剪辑

现在我想做一个if else的判断,如果它真的将金星添加到正确的starContainer。

public var starScreen:starScreen;

仅供参考//动态starScreen MovieClip点击

for( var i:int = 1; i < 4; i++ )
{
    var levelNumStarNum:String = "L1star"+i;
    var goldStarOnPage:goldStar = new goldStar();

if( shared.data[levelNumStarNum] == undefined )
{
    // add no stars
}
else if( shared.data[levelNumStarNum] == 1 )
{
    // this works
    starScreen.goldStarContainer1.addChild(goldStarOnPage);
}
// but i would like to do something like this...

starScreen.goldStarContainer[i].addChild(goldStarOnPage);

我尝试了getChildByName,但它一直给我错误: 通过静态类型Class的引用调用可能未定义的方法getChildByName。

1 个答案:

答案 0 :(得分:1)

尝试改变这一点:

starScreen.goldStarContainer1.addChild(goldStarOnPage);

到此:

DisplayObjectContainer(DisplayObjectContainer(starScreen).getChildByName("goldS‌​tarContainer"+i)).addChi‌​ld(goldStarOnPage);

并查看是否有帮助