Если у вас есть массив MovieClips примерно так:
var a:Array = new Array;
for ( var j:int = 0; j < 10; j++ )
a[j] = new MovieClip;
У вас есть 3 способа пройти по нему и воздействовать на все мувиклипы внутри него. Первый является основным для цикла:
var len:int = a.length;
for ( var i:int = 0; i < len; i++ )
{
var mc:MovieClip = a[i];
trace( mc );
}
Основной цикл for - это самый быстрый способ циклического перемещения по массиву. Вам просто нужно найти MovieClip по определенному индексу, используя оператор скобок. a[i]
вернет MovieClip с текущим индексом (например, a[0]
вернет MovieClip в начале массива, a[1]
следующий и т. Д.).
Вы также можете сделать для ... каждый:
for each( var mc:MovieClip in a )
trace( mc );
Циклы For..each немного медленнее, чем обычные циклы for, но имеют дополнительное преимущество, поскольку имеют прямой доступ к объекту, уже приведенному. Это может быть довольно удобно
И, наконец, используйте метод forEach()
:
a.forEach( this._loopFunc );
private function _loopFunc( mc:MovieClip, index:int, a:Array ):void
{
trace( mc + " is at index " + index + " in array " + a );
}
Я никогда не видел, чтобы forEach()
использовался где-либо, но вы можете найти его полезным Для обратного вызова вам нужно объявить 3 параметра: объект, индекс и сам массив.
Более подробную информацию вы можете найти в документации по массиву: http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/Array.html