Анимaции создaния и уничтoжeния oбъeктoв

То что касается флеша, но не касается ВКонтакте API. Например проблемы при создании прыгающего мячика.

Анимaции создaния и уничтoжeния oбъeктoв

Сообщение Agiliter » 10 ноя 2014, 19:13

Добрый день! Есть набор различных объектов Моделей животных. У каждого вида животных свой набор поведений, но все они наследуют от класса Модель-Животное. Соответственно, каждому животному нужно свое Представление. Не придумал ничего лучше, как сделать Общий класс Вид-Животное и от него отнаследовать различные Виды, свои для каждой модели.

Каждое животное при появлении своей модели диспатчит событие создания. Главная вьюшка ловит его и создает соответствующий вид Предсталения. Проблема в чем - нужно задать каждому представлению анимацию (или звук) создания и уничтожения, но я не представляю как это правильно сделать. Грубо говоря, в каждом Представлении наследнике Вида-Животного я задаю функцию create() и destroy() и внутрь помещаю соответствующую анимацию (звук) создaния/уничтoжeния.

Тогда порядок такой: в главной модели создается модель Животного и заносится в список живых животных -> модель диспатчит событие своего создания -> главная вьюшка ловит событие, создает соответствующее представление, передавая в него модель, и добавляет вьюшку в список существующих представлений -> через какое-то время животное умирает и диспатчит событие своей смерти -> главная модель удаляет из списка живых животное -> соответствующее представление вызывает функцию проигрывания анимации уничтожения. Верно? Смущает, что Модель уже удалена, а представление еще нет. Не докурю как правильно сделать уничтожение.
С уважением,
М.Ф.
Agiliter

 
Автор темы
Сообщения: 112
Зарегистрирован: 01 фев 2014, 13:46
Благодарил (а): 29 раз.
Поблагодарили: 0 раз.

Чтобы убрать блок с рекламой, зарегистрируйтесь на форуме или войдите.

Google
 



Re: Анимaции создaния и уничтoжeния oбъeктoв

Сообщение XELAD » 10 ноя 2014, 21:46

Почему-то вас смущает разделение обязанностей, хотя оно у вас повсюду. Вон "главная вьюшка ловит... создает..., передавая..., и добавляет", вместо того, чтобы просто добавить экземпляр класса на сцену. Вы сами себе создали "двойную бухгалтерию", поэтому у вас и будет - один создаёт, другой диспатчит, третий анимирует.
XELAD

 
Сообщения: 205
Зарегистрирован: 17 июл 2012, 05:25
Благодарил (а): 13 раз.
Поблагодарили: 24 раз.

Re: Анимaции создaния и уничтoжeния oбъeктoв

Сообщение Agiliter » 10 ноя 2014, 22:14

XELAD писал(а):Вы сами себе создали "двойную бухгалтерию", поэтому у вас и будет - один создаёт, другой диспатчит, третий анимирует.

Разделение на модель-вид вынужденное, ибо у каждой модели может быть минимум три типа представлений.

Вопрос был в другом. Как обычно делаются анимации создания/уничтожения? Ведь сначала должны проиграться эффекты создания, а лишь затем добавится само представление. И при уничтожении объект должен удалиться из главной модели и убраться со сцены и при это проигрывается уничтожение.

И еще вопрос по этим же анимациям/звукам. Для их проигрывания я написал AnimationManager и SoundManager соответственно. В конструкторы обоих классов передается некий глобальный таймер, подписываясь на который анимации и проигрываются. Типа
  1. timer:Timer = new Timer(1000);
  2. animationManager:AnimationManager = new AnimationManager(timer);
  3. animationManager.create("animation1");
  4.  
И тогда при запуске глобального таймера анимации запускаются, при остановке останавливаются и т.д. Это хороший вариант? Я пытаюсь уйти от использования локальных таймеров.
С уважением,
М.Ф.
Agiliter

 
Автор темы
Сообщения: 112
Зарегистрирован: 01 фев 2014, 13:46
Благодарил (а): 29 раз.
Поблагодарили: 0 раз.

Re: Анимaции создaния и уничтoжeния oбъeктoв

Сообщение XELAD » 11 ноя 2014, 16:48

Вариантов много, к примеру: создать класс Effects, который создавать вместо объекта, и в который передавать то, что нужно сделать в конце анимации (создать объект сначала). Эффект проиграет анимацию, добавит объект, удалит себя. Когда объект "умрёт", создание другого экземпляра Effects, который проиграет анимацию уничтожения и удалит себя.

Да, ваш глобальный таймер пока неплох. Не забудьте добавить условие, чтобы специально остановленные анимации не включались при выключении паузы.
XELAD

 
Сообщения: 205
Зарегистрирован: 17 июл 2012, 05:25
Благодарил (а): 13 раз.
Поблагодарили: 24 раз.

Re: Анимaции создaния и уничтoжeния oбъeктoв

Сообщение koken » 05 июн 2019, 21:17

koken

 
Сообщения: 1
Зарегистрирован: 05 июн 2019, 21:17
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.


Вернуться в Программирование на Flash



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

cron