Форум программистов, компьютерный форум, киберфорум
ActionScript
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
1 / 1 / 0
Регистрация: 13.12.2012
Сообщений: 102
1
AS 3.0

Анимации создания и уничтожения объектов

10.11.2014, 19:14. Просмотров 1160. Ответов 5
Метки нет (Все метки)

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

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

Тогда порядок такой: в главной модели создается модель Животного и заносится в список живых животных -> модель диспатчит событие своего создания -> главная вьюшка ловит событие, создает соответствующее представление, передавая в него модель, и добавляет вьюшку в список существующих представлений -> через какое-то время животное умирает и диспатчит событие своей смерти -> главная модель удаляет из списка живых животное -> соответствующее представление вызывает функцию проигрывания анимации уничтожения. Верно? Смущает, что Модель уже удалена, а представление еще нет. Не докурю как правильно сделать уничтожение.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.11.2014, 19:14
Ответы с готовыми решениями:

Реализовать внешние функции для создания и уничтожения объектов класса
Здравствуйте, имеется вот такое задание: Создайте класс с закрытыми конструкторами и деструктором....

Изменение размера анимированного GIF файла без уничтожения анимации
Мне нужно изменить размеры файла GIF так, чтобы анимация не пропадала

Демонстрационная программа создания и уничтожения процессов
Помогите пожалуйста как можно исправить программу Приложение 2 //демонстрационная программа...

Измерить время создания и последующего уничтожения (TerminateTread) не приостановленного потока,
/*Все работает, но время считает не корректно. Возможно нужно просто добавить ф-ю Wait? Или есть...

5
bus
34 / 34 / 3
Регистрация: 17.05.2014
Сообщений: 144
10.11.2014, 21:14 2
Цитата Сообщение от agiliter Посмотреть сообщение
передавая в него модель
Интерфейс модели.
Цитата Сообщение от agiliter Посмотреть сообщение
Верно?
Нет, не верно. Анимация не входит в задачу модели, анимацию должна показывать представление.
Животное умерло, проиграли анимацию, сообщили контроллеру и он уже меняет модель.
Это если не вдаваясь в подробности.
0
1 / 1 / 0
Регистрация: 13.12.2012
Сообщений: 102
10.11.2014, 21:20  [ТС] 3
Цитата Сообщение от bus Посмотреть сообщение
Анимация не входит в задачу модели, анимацию должна показывать представление.
Ну а собственно
Цитата Сообщение от agiliter Посмотреть сообщение
соответствующее представление вызывает функцию проигрывания анимации
Цитата Сообщение от bus Посмотреть сообщение
Животное умерло, проиграли анимацию, сообщили контроллеру и он уже меняет модель.
Т.е. дожидаться окончания анимации уничтожения? А зачем?
0
bus
34 / 34 / 3
Регистрация: 17.05.2014
Сообщений: 144
10.11.2014, 21:56 4
Я не так понял. Вы правильно делаете.
0
1 / 1 / 0
Регистрация: 13.12.2012
Сообщений: 102
10.11.2014, 22:16  [ТС] 5
Цитата Сообщение от bus Посмотреть сообщение
Я не так понял. Вы правильно делаете.
Спасибо) Тогда другой вопрос по этим же анимациям/звукам. Для их проигрывания я написал AnimationManager и SoundManager соответственно. В конструкторы обоих классов передается некий глобальный таймер, подписываясь на который анимации и проигрываются. Типа
ActionScript 3
1
2
3
timer:Timer = new Timer(1000);
animationManager:AnimationManager = new AnimationManager(timer);
animationManager.create("animation1");
И тогда при запуске глобального таймера анимации запускаются, при остановке останавливаются и т.д. Это хороший вариант? Я пытаюсь уйти от использования локальных таймеров.

Добавлено через 9 минут
Касательно же первого вопроса, то он был в том, как обычно делаются анимации создания/уничтожения? Ведь сначала должны проиграться эффекты создания, а лишь затем добавится на сцену само представление. И при уничтожении объект должен удалиться из главной модели и убраться со сцены и при это проигрывается уничтожение.
0
bus
34 / 34 / 3
Регистрация: 17.05.2014
Сообщений: 144
10.11.2014, 22:31 6
У меня типа вот такого -
ActionScript 3
1
2
3
4
5
6
7
8
9
10
11
12
13
var animator: IAnimator = new Animator( );
// к которого есть метод, типа 
// public function setItem( item:IAnimatable ):void{}
 
var animationManager: AnimationManager = new AnimationManager( {animator: animator} );
// и в манагере
public function create( ):IAnimation
{
    var animation: IAnimation = new Animation( );
    this._animator.setItem( animation  );
    
    return animation;
}

Цитата Сообщение от agiliter Посмотреть сообщение
Касательно же первого вопроса, то он был в том
Это дело обстоятельства. Бывает, что все анимации в одном mc и удалить его до полного проигрывания,
просто невозможно. Например, животное имеет несколько состояний стоит, бежит, умирает и все они в одном
mc-swf..

Я не буду вдаваться в подробности ( это очень долго объяснять ), но Вам бы посоветовал разобраться
с моделями животных. Возможно они в модели и не нужны.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.11.2014, 22:31

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Программа для создания анимации
Здравствуйте, подскажите пожалуйста простенькую и удобную программу для создания флэш анимации по...

Программа для создания анимации
Нужно сделать что-то между мультиком и презентацией, есть ли программа на которой анимация (2D)...

Программа для создания Gif анимации
Добрый день, работаю над программой для обработки изображений , хотел бы добавить возможность...

Программа для создания Flash-анимации
Здравствуйте! Помогите мне пожалуйста новичку!!! В общем мне нужно создать курсовой проект ! ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.