Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 15.06.2007, 15:44
deep_freeze вне форума Посмотреть профиль Отправить личное сообщение для deep_freeze Найти все сообщения от deep_freeze
  № 1  
Ответить с цитированием
deep_freeze
 
Аватар для deep_freeze

Регистрация: Nov 2006
Адрес: *.kh.ua
Сообщений: 19
По умолчанию Сценарии эффектов

Собственно, задумался я над такой мыслю - работаю сейчас над одним проектом с кучей кастомовых элементов управления. Естественно, всё нужно сделать красиво, чтобы всё футуристично выезжало / заезжали, исчезало, становилось полупрозрачным и так далее.

Возникла необходимость в автоматизации эффектов. Например, есть у нас три текстовых поля, которые должны выезжать из-за верхенго угла экрана, занимать свои места по центру экрана и потом из полупрозрачных становиться непрозрачными (alpha = 0.3 -> alpha = 1). Вся эта нехитрая анимация состоит из действий:

1. выезд первого элемента на центр экрана
2. пауза 1000 мс
3. выезд второго элемента на центр экрана
4. пауза 1000 мс
5. выезд третьего элемента на центр экрана
6. пауза 1000 мс
7. Одновременное постепенное изменение alpha всех троих текстовых полей.

Естественно, чем сложнее компонент, чем больше его составляющих (есть у меня, к примеру, анимированный комбобокс), тем больше нужно эффектов писать.

Ну, и сел я за написание классов для автоматизации анимации.

Класс FxSet, скажем, содержит поле targets, которое является массивом объектов типа UIComponent (это, собственно, ссылки на объекты, к которым будут применяться эффекты), поле effects, которое является массивом объектов типа Fx (занимается, собственно, самой реализацией эффекта).

(Fx)
|- MoveFx
|- ScaleFx
|- FadeFx
|- RotateFx
|- SoundFx

MoveFx, ScaleFx, FadeFx, RotateFx, SoundFx - наследники класса Fx. Каждый наследник обладает ф-цией start(), что запускает эффект. Каждый эффект имеет свою длительность и специфичные параметры (х, у координаты, значения альфа-канала и т.д...).

В массиве targets объекта FxSet каждый элемент UIComponent имеет поле типа Number - номер группы, чтобы можно было ссылаться на то, к каким именно компонентам должен применяться эффект.

Можно настроить FxSet, чтобы эффекты применялись к визуальным компонентам по очереди или одновременно, в асинхонном режиме или с ожиданием завершения предыдущего эффекта.

Описание такого сценария эффектов можно поместить в XML-документ и передавать объекту FxSet этот XML-код. После этого достаточно лишь добавить в FxSet targets и запустить всё это действо.


..................

Собственно, сам вопрос... Предложенная мною система очень сложна и громоздка. Стоит ли вообще её юзать для создания сценария эффектов (в компоненте FxSet можно устанавливать последовательность эффектов) или есть уже готовые средства ActionScript 3, про которые я не знаю? Написание подобной вещи займет массу времени, к тому же, даже будучи написанной эта система будет довольно громоздка (чтение сценария из XML займет некоторое время, плюс насоздаётся куча объектов, что будет нагрузкой на ресурсы, плюс размер самого ролика увеличится...).

Стоит ли вообще этим заниматься или разработчики ActionScript 3 создали более простую альтернативу?

За любую помощь буду очень благодарен.


Последний раз редактировалось deep_freeze; 15.06.2007 в 17:13.
Создать новую тему   Часовой пояс GMT +4, время: 04:11.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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