Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Работа с циклом (http://www.flasher.ru/forum/showthread.php?t=160945)

DarkKnight2009 19.07.2011 14:31

Работа с циклом
 
Здравствуйте.
Подскажите пожалуйста.
Есть цикл
Код AS3:

for(var i:uint = 0; i < addClass_SetText._getCoords.length; i ++)
                        {
                                TweenLite.to(shape, 1, {x:5, y:addClass_SetText._getCoords[i]});
                        }

Где addClass_SetText._getCoords - массив с координатами
Фигура shape должна начинаться с первой координаты в массиве идти до последней, при этом задержка должна быть пару сек.
А у меня она сразу опускается с первой координаты на последнюю, не останавливаясь при этом ни на одной между ними, что не так, подскажите пожалуйста ?

КорДум 19.07.2011 14:35

Посмотрите delay у твина в документации.

DarkKnight2009 19.07.2011 14:36

Цитата:

Сообщение от КорДум (Сообщение 1012818)
Посмотрите delay у твина в документации.

Спасибо, уже посмотрел.
Задержка выполняется, но фигура все равно стартует с первой координаты и сразу на последнюю, а между ними, которые координаты она игнорирует.
Я что-то неправильно с циклом написал, а что не могу понять :(

carrotoff 19.07.2011 14:39

Цикл выполняется быстрее, чем проходит анимация

КорДум 19.07.2011 14:39

В данном случае нужно сделать цепочку "tween-onComplete-tween-onComplete-...". Дело в том, что если подряд задать одному объекту несколько твинов, то сработает исключительно и совершенно точно только последний. Вне зависимости, какой там поставлен delay. Замените вашу конструкцию на экземпляр класса TimelineLite.

DarkKnight2009 19.07.2011 14:40

Цитата:

Сообщение от carrotoff (Сообщение 1012822)
Цикл выполняется быстрее, чем проходит анимация

Не понял, что вы имеете в виду, а что не так с ним ?

kuflash 19.07.2011 14:41

А почему бы не воспользоваться таймером? В нем просто увеличивать какую нибудь переменную на 1 и делать что-то подобное:
Код AS3:

count++;
TweenLite.to(shape, 1, {x:5, y:addClass_SetText._getCoords[count]})


DarkKnight2009 19.07.2011 14:41

Цитата:

Сообщение от КорДум (Сообщение 1012823)
В данном случае нужно сделать цепочку "tween-onComplete-tween-onComplete-...". Дело в том, что если подряд задать одному объекту несколько твинов, то сработает исключительно и совершенно точно только последний. Вне зависимости, какой там поставлен delay. Замените вашу конструкцию на экземпляр класса TimelineLite.

Вы имеете в виду так ?
TimelineLite.to(shape, 3, {x:5, y:addClass_SetText._getCoords[i]});

КорДум 19.07.2011 14:41

Все так с циклом. Здесь конкретно в твинах особенность. Твин в текущем кадре заменяет предыдущий твин в этом же кадре. И ему безразлична задержка.

Добавлено через 33 секунды
Цитата:

Вы имеете в виду так ?
TimelineLite.to(shape, 3, {x:5, y:addClass_SetText._getCoords[i]});
Нет. Посмотрите документацию.

carrotoff 19.07.2011 14:43

Цитата:

Не понял, что вы имеете в виду, а что не так с ним ?
С ним всё в порядке. Код не выполняется синхронно с вашим твином. И потому, пока прогоняется первый твин из всех, проходят все итерации вашего цикла.

Решение представил Вам КорДум

Цитата:

В данном случае нужно сделать цепочку "tween-onComplete-tween-onComplete-...". Дело в том, что если подряд задать одному объекту несколько твинов, то сработает исключительно и совершенно точно только последний. Замените вашу конструкцию на экземпляр класса TimelineLite.


Часовой пояс GMT +4, время: 10:03.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.