2013-05-25 2 views
1

Я создал квадрат и сохранил его как мувиклип под названием starContainer, я снял три из них на сцене и дал имена каждого экземпляра в моей flash-cs6, названной - goldStarContainer1, goldStarContainer2 и goldStarContainer3.Как я могу использовать имя экземпляра цикла без использования этого «ключевого слова»?

В моей библиотеке я также мувиклип золотой звезды под названием Goldstar

Теперь я хотел бы сделать если еще даного и если его истинный добавить золотую звезду правой starContainer.

public var starScreen:starScreen; 

FYI // динамического 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 но продолжает давать мне ошибку: вызова к возможно неопределенному методу getChildByName через ссылку со статическим типом Класс.

ответ

1

Попробуйте изменить:

starScreen.goldStarContainer1.addChild(goldStarOnPage); 

к этому:

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

и посмотреть, если это помогает

+0

вызов к возможному неопределенному методу getChildByName через ссылку со статическим типом flash.display : DisplayObject. :( –

+0

@ LukeDobner странно, поэтому попробуйте это: 'DisplayObjectContainer (starScreen) .getChildByName (« goldStarContainer »+ i) .addChild (goldStarOnPage);' – Cherniv

+0

жаль, что он говорит о вызове неопределенного метода «addchild» через ссылку со статическим типом flash .display: DisplayObject –