Честно говоря, я бы изначально все это настроил с помощью цикла for. Когда вы закончите цикл for, разместите каждый элемент соответствующим образом, затем используйте TweenLite или ваш любимый пакет Tweening.
package
{
import flash.display.Sprite;
import flash.events.Event;
import gs.TweenLite;
import gs.easing.*;
public class ExampleDocumentClass extends Sprite
{
if(stage) _init();
else addEventListener(Event.ADDED_TO_STAGE, _init(), false, 0, true);
}
private function _init(e:Event =null):void
{
for(var i:int = 0; i < 25; i++)
{
var mc:MovieClip = new MovieClip();
mc.graphics.beginFill(Math.random() * 0x000000);
mc.graphics.drawRect(0,0,stage.stageWidth,25);
//Seperates them by 25, their width, so they will touch.
mc.x= i * 25; //i * 25 + 1 leaves a space in between.
mc.y=0;
addChild(mc);
TweenLite.to(mc, 0.9, {y:math.random()*1000-500, x: 0, ease: Expo.easeOut});
if(i == 24) //Total length - 1
{
//The loop ended.
}
}
}
Важно отметить, что обновления экрана НЕ происходят внутри блоков кода, таких как циклы for и while. Вы не могли бы расположить их на основе друг друга так, как я показал, потому что, хотя предыдущие элементы x, возможно, только что были установлены, они не были отображены на экране; Чтобы построить систему, в которой, скажем, все изображения не имеют одинаковую ширину, но одно должно начинаться за другим, мы должны дождаться события Event.COMPLETE для данного загрузчика, чтобы мы могли получить доступ к его ширине и другим параметрам. атрибутов. Поскольку вы просто хотели разнести их на 25 пикселей друг от друга, и они имеют одинаковый размер, мы просто используем «i» для их разделения
Что происходит:
i * 25 = 0;
я ++;
i * 25 = 25;
я ++;
я * 25 = 50;
Как вы можете видеть, мы достигли искомого расстояния.
Брайан Ходж
hodgedev.com
blog.hodgedev.com