Определение мувиклипа, назначенного переменной в массиве AS3 - PullRequest
0 голосов
/ 26 ноября 2018

Пожалуйста, прости мою терминологию, я не знаю, как правильно.

Допустим, у меня есть несколько переменных мувиклипа

var rblock1:MovieClip = new Rblock();
var rblock2:MovieClip = new Rblock();
var rblock3:MovieClip = new Rblock();
var yblock1:MovieClip = new Yblock();
var yblock2:MovieClip = new Yblock();
var yblock3:MovieClip = new Yblock();

Я добавил их в массив

var blockarray:Array = new Array(rblock1, rblock2, rblock3, yblock1, yblock2, yblock3);
var block

Я хочу создать цикл for с оператором if, который срабатывает, если переменная - это Rblock, а не Yblock, например

for each (block in blockarray)
{ 

    if (block==Rblock)
    { 
         trace("rblock");
    }

}

Проблема заключается в том, что, очевидно, "if (block == Rblock)"не работаетКак это должно быть написано?

Ответы [ 2 ]

0 голосов
/ 26 ноября 2018

Вы, очевидно, хотите проверить, является ли блок красным или желтым, проверив его имя класса .Вы можете сделать это с помощью:

if (block is Rblock) {...} // yes, red
0 голосов
/ 26 ноября 2018

Я нашел способ обойти не совсем идеальное решение, которое будет работать только для определенных сценариев ...

, если у каждого класса есть уникальная черта, вы можете идентифицировать ее таким образом, например ....

если все переменные, определенные классом Rblock, шире, чем класс Yblock, вы могли бы сказать

if (block.width>x) { trace(Rblock); }

Как я уже говорил, это только обходной путь и работает только для определенных переменных movieclipпо классам, которые отличаются, если у кого есть актуальное решение, пожалуйста, напишите

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