этот синтаксис ["instancename"] - PullRequest
6 голосов
/ 09 декабря 2010

Я вижу, что мои коллеги часто используют этот ужасный синтаксис:

var mc1: MovieClip;
var mc2: MovieClip;
var mc3: MovieClip;
var mc4: MovieClip;
var mc5: MovieClip;

for (var i:int = 1; i <= 5; i++) { 
   addChild(this["mc" + i]); // UURRGGHHH
   TweenLite.to(this["mc"+i], 1, {alpha: 0}); // FNNNGGGGGHHHH
}

Поскольку я боссовый дурак, я собираю список причин, почему они должны использовать массивы для итерации,не противный синтаксис в квадратных скобках.Я знаю, что неправильно использовать этот синтаксис, но я не могу придумать достаточно веских причин, по которым они должны отказаться от него.

Ударьте меня некоторыми фактами, пожалуйста.

Ответы [ 4 ]

8 голосов
/ 09 декабря 2010
  • Использование массива облегчает добавление другого элемента. Вам не нужно объявлять новую переменную.
  • Вам не нужно изменять предел цикла for при добавлении другого элемента.
  • У вас есть только одна переменная для переименования, если в этом возникает необходимость.
  • Это помогает вам плодотворно мыслить, когда вы можете узнать коллекцию вещей по семантически полезному определению.
6 голосов
/ 09 декабря 2010

Тип-безопасности.

Синтаксис в квадратных скобках не приведет к приличному типу, чтобы компилятор мог проверять наличие проблем во время компиляции Я не прощаю людей, которые приходят ко мне с исключениями времени выполнения, вызванными проблемами типа.

Серьезно, система типов в AS3 существует по причине. Используй это. Не пытайтесь найти способы обойти это. Это предотвращает проблемы.

4 голосов
/ 09 декабря 2010

Я спорю с вами здесь и скажу, что вы должны использовать не массивы, а векторы .

0 голосов
/ 09 декабря 2010

Факт: я просто использую подобный способ сегодня днем.

Но нижеуказанный способ может удовлетворить «их» ожидание:

var mcs: Array = [mc1, mc2, mc3, mc4, mc5];

(var i: int = 1; i <= mcs.length; i ++) <br>{
addChild (mcs [i]);
TweenLite.to (mcs [i], 1, {alpha: 0});
}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...