Получить массив определенных добавленных потомков - PullRequest
0 голосов
/ 12 апреля 2011

Я использую следующий массив для добавления потомков на сцену:

for(var i=0;i<6;i++) {
    var aCherry=new cCherry()
    aCherry.y=10
    aCherry.x=10+100*i
    stage.addChild(aCherry)
}

Теперь я хочу изменить каждую вишню на основе другого массива.Примерно так:

var cherryLetter:Array=[1,0,0,0,0,0]
    for(i=0;i<6;++) {
        if(cherryLetter[i]) stage.getChildByName("aCherry")[i].y+=90
    }

Ясно, что stage.getChildByName("aCherry")[i] не правильно, но, исходя из JavaScript, это имеет для меня самый смысл и должно точно изобразить то, что я пытаюсь достичь для вас, парни, читающие это.Итак, как бы я на самом деле это сделал?Это добавление массива дочерних элементов на сцену под определенным именем или класса (так что массив cCherry тоже будет работать, если необходимо), а затем использование их способом, аналогичным приведенному выше циклу.

1 Ответ

1 голос
/ 12 апреля 2011

Вот моя рекомендация о том, как может выглядеть код, основываясь на желании использовать getChildByName () для поиска экземпляров вашего класса cCherry. Обратите внимание, что в этом примере я изменил имя класса на Cherry (что я рекомендую, поскольку использование имен классов с заглавной буквы - соглашение AS3). Кроме того, хорошей практикой является завершение операторов точкой с запятой. Хотя это обычно необязательно, есть случаи, когда отсутствие точки с запятой может очень трудно отследить ошибки времени выполнения, поэтому я рекомендую использовать их в привычке. Я также рекомендую включать type во все объявления переменных, как показано, например, для var aCherry: Cherry.

var i:int;
for(i=0; i<6; ++i)
{
    var aCherry:Cherry=new Cherry(); // Note, it's my recommendation that you rename cCherry class to Cherry (convention)
    aCherry.y=10;
    aCherry.x=10+100*i;
    aCherry.name = "aCherry" + String(i); // String() cast for clarity only, not necessary
    stage.addChild(aCherry);
}

и

var cherryLetter:Array=[1,0,0,0,0,0];
for(i=0; i<6; ++i)
{
    var cherry:Cherry = stage.getChildByName("aCherry" + String(i)) as Cherry;
    if(cherry && cherryLetter[i]) cherry.y += 90;
}
...