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

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

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

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

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

Тогда порядок такой: в главной модели создается модель Животного и заносится в список живых животных -> модель диспатчит событие своего создания -> главная вьюшка ловит событие, создает соответствующее представление, передавая в него модель, и добавляет вьюшку в список существующих представлений -> через какое-то время животное умирает и диспатчит событие своей смерти -> главная модель удаляет из списка живых животное -> соответствующее представление вызывает функцию проигрывания анимации уничтожения. Верно? Смущает, что Модель уже удалена, а представление еще нет. Не докурю как правильно сделать уничтожение.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.11.2014, 19:14
Ответы с готовыми решениями:

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

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

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

5
bus
34 / 34 / 3
Регистрация: 17.05.2014
Сообщений: 144
10.11.2014, 21:14
Цитата Сообщение от agiliter Посмотреть сообщение
передавая в него модель
Интерфейс модели.
Цитата Сообщение от agiliter Посмотреть сообщение
Верно?
Нет, не верно. Анимация не входит в задачу модели, анимацию должна показывать представление.
Животное умерло, проиграли анимацию, сообщили контроллеру и он уже меняет модель.
Это если не вдаваясь в подробности.
0
1 / 1 / 0
Регистрация: 13.12.2012
Сообщений: 102
10.11.2014, 21:20  [ТС]
Цитата Сообщение от bus Посмотреть сообщение
Анимация не входит в задачу модели, анимацию должна показывать представление.
Ну а собственно
Цитата Сообщение от agiliter Посмотреть сообщение
соответствующее представление вызывает функцию проигрывания анимации
Цитата Сообщение от bus Посмотреть сообщение
Животное умерло, проиграли анимацию, сообщили контроллеру и он уже меняет модель.
Т.е. дожидаться окончания анимации уничтожения? А зачем?
0
bus
34 / 34 / 3
Регистрация: 17.05.2014
Сообщений: 144
10.11.2014, 21:56
Я не так понял. Вы правильно делаете.
0
1 / 1 / 0
Регистрация: 13.12.2012
Сообщений: 102
10.11.2014, 22:16  [ТС]
Цитата Сообщение от 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
У меня типа вот такого -
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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.11.2014, 22:31
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru