![]() |
Последовательное выполнение анимаций TweenLite
Помогите разобраться, я запутался. Мне нужна очередь, в которую можно класть разные TweenLite, чтобы они выполнялись:некоторые последовательно, некоторые одновременно (пачкой, как будо это один экземпляр TweenLite в очереди, они добавляются одномоментно). После завершения анимации эти TweenLite должны удаляться из очереди.
Т.е. это очередь она одна, глобальная. А добавление экземпляров TweenLite в неё происходит на всём протяжении работы флешки. И вот, если очередь пустая - экземпляр должен сразу запускаться. Если в очереди есть ещё элементы - должен ждать. прока они все выполнятся, а потом выполняться. Я попробовал TimelineLite append() и appendMultiple() (как раз для пачек). Но там, если одна анимация уже прошла и через какое-то время добавляешь вторую - она не запускается. |
Так создавайте каждый раз новый таймлайн для пачки. инсерт - распараллеливает, аппенд добавляет в конец анимации.
|
Нет, мне нужна одна общая очередь. Вообще зря я про пачки написал, они уже другая история.
Сначала мне надо разобраться с одиночными элементами. Вот пример: Код AS3:
|
ну play() повторно позвать надо, наверно.
|
Да, вроде заработало, спасибо.
Добавлено через 34 минуты Всё равно работает неправильно. Если задать ощутимый промежуток, например Код AS3:
|
Если нужно просто последовательно - я бы в конвеер Потапенко загнал.
А уж если бы потребовалось, чтобы промежутки анимаций накладывались друг на друга и как-то сложнее реагировали - тогда бы уже подключал мозг или внимательнее вчитывался в доки по твину. |
Нужно последовательное воспроизведение пачек. В пачке - 1 и более твинов.
Что за конвейер Потапенко? Гугл выводит только левые ссылки, можно ссылку на библиотеку? |
Кстати да у эффектов есть параметр задержки и инсертить можно на определенное время.
|
Пробовал инсерт
Код AS3:
|
Цитата:
http://www.flasher.ru/forum/blog.php?b=528 (там внизу zip-архив) Как-то так будет выглядеть: Код AS3:
|
Вложений: 1
Неа, не работает. То ли в конвейере есть ошибка, то ли я его не так приспособил.
В результате написал своё, которое работает. Ради спортивного интереса, прилагаю свой рабочий вариант и тот же самый вариант с конвейером. Можешь попробовать его оживить, мн было бы интересно посмотреть. Там в архиве TweenQueue - вариант с конвейером, TweenQueue2 - работающиё вариант без конвейера. В Main у поля _q достаточно менять тип с TweenQueue2 на TweenQueue для смены теста. |
Да не, багов то в конвеере нет.
(тесты, конечно хороши для демонстрации багов, а не их отсутствия, но загнать багу в полторы сотни строк, покрытых на 100% всё же сложно) Есть ньюансы самой логики конвеера. Впринципе, Ваша реализация в данном случае не сложнее применения конвеера, но, всё-таки, рабочий код: Код AS3:
Я так понял - задача - сделать список с плавно разъезжающимися элементами? Так для этого не нужно очередей. Просто при добавлении/удалении элемента каждому оставшемуся назначаем твин в точку, в которой он должен быть - 50 объектов - 50 одновременных твинов - ничего страшного. (при этом плюём с высокой колокольни двигался ли он до этого или нет - TweenLite автоматом прерывает передыдущий твин для объекта, на который вешается следующий) Всё! Ну если не считать, что надо применить некоторые хитрости, чтобы одновременное движение и исчезание под этим элементом другого - не выглядело криво (например, у меня они исчезали скейлом в 0 и при уменьшении сдвигались в сторону, но можно и таки ввести ожидание конца исчезновения или ещё что) |
Ага, вот тоже думал что надо эвент на окончание конвейера как-то использовать, но уже столько перепробовал до этого, что плюнул).
Цитата:
|
Короче, вот в чем смысл: как они переделали это - nextTween, autoPlay?
Код AS3:
|
| Часовой пояс GMT +4, время: 15:02. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.