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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 21.10.2011, 10:20
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 11  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Только не через таймер. Я предупредил.

З.Ы. Секунда будит [x]
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 21.10.2011, 10:27
BuKT вне форума Посмотреть профиль Отправить личное сообщение для BuKT Найти все сообщения от BuKT
  № 12  
Ответить с цитированием
BuKT
 
Аватар для BuKT

блогер
Регистрация: Dec 2010
Сообщений: 237
Записей в блоге: 5
Цитата:
В место "Event.ENTER_FRAME" советую использовать "TimerEvent.TIMER" с "updateAfterEvent();".
Вопрос из зала: updateAfterEvent() вызывает EnterFrame или просто производит те же операции, что и вхождение в кадр? Иными словами - необходимо ли мне вызывать каждый раз camera.render() когда тикнул таймер, или оно сделает это самостоятельно, т.к. рендер камеры подписан на энтерфрейм?
__________________
Дебаггер не предлагать

Старый 21.10.2011, 21:05
crazyone вне форума Посмотреть профиль Отправить личное сообщение для crazyone Найти все сообщения от crazyone
  № 13  
Ответить с цитированием
crazyone
 
Аватар для crazyone

блогер
Регистрация: Nov 2007
Адрес: Киев
Сообщений: 557
Записей в блоге: 2
Насколько я понимаю, таймер с updateAfterEvent() заставляет плеер отрисовывать содержимое не только во время, когда начинается кадр, но и в то время, когда срабатывает таймер. Каким образом это может увеличить производительность?

Я еще понимаю, если у нас в приложении нет обычной анимации, а только програмная - ок, ставим фреймрейт в значение "1" и таймер даст нам больше производительности за счет отсутствия всякого функционала кадра типа фаз, вещания разных событий и т.д.
То, что возможностей больше - это конечно да, удобненько.

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

Старый 21.10.2011, 21:28
derhab вне форума Посмотреть профиль Отправить личное сообщение для derhab Найти все сообщения от derhab
  № 14  
Ответить с цитированием
derhab
 
Аватар для derhab

Регистрация: Apr 2001
Адрес: Berlin
Сообщений: 1,862
Отправить сообщение для derhab с помощью ICQ Отправить сообщение для derhab с помощью Skype™
Цитата:
Сообщение от crazyone Посмотреть сообщение
Насколько я понимаю, таймер с updateAfterEvent() заставляет плеер отрисовывать содержимое не только во время, когда начинается кадр, но и в то время, когда срабатывает таймер. Каким образом это может увеличить производительность?
Но чтобы заявлять, что рендер нужно вешать исключительно на таймер - нужно привести побольше аргументов.
Плеер отрисовывает не когда "начинается кадр", а во второй фазе, когда выполнен весь код для текущего кадра. А updateAfterEvent() заставляет плеер производить внеплановую дополнительную отрисовку, что конечно, приведет к значительной потере производительности
__________________
freelance | Раздор

Старый 21.10.2011, 23:31
crazyone вне форума Посмотреть профиль Отправить личное сообщение для crazyone Найти все сообщения от crazyone
  № 15  
Ответить с цитированием
crazyone
 
Аватар для crazyone

блогер
Регистрация: Nov 2007
Адрес: Киев
Сообщений: 557
Записей в блоге: 2
Да, согласен, сначала код, потом рендер. Ошибся.

Старый 22.10.2011, 00:09
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 16  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Цитата:
Сообщение от derhab Посмотреть сообщение
Плеер отрисовывает не когда "начинается кадр", а во второй фазе, когда выполнен весь код для текущего кадра.
Скорее, в некоторой по счету фазе, которая наступает по прошествии (нескольких) фаз "выполнение кода в текущем кадре". Не забываем о событиях.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 22.10.2011, 00:16
derhab вне форума Посмотреть профиль Отправить личное сообщение для derhab Найти все сообщения от derhab
  № 17  
Ответить с цитированием
derhab
 
Аватар для derhab

Регистрация: Apr 2001
Адрес: Berlin
Сообщений: 1,862
Отправить сообщение для derhab с помощью ICQ Отправить сообщение для derhab с помощью Skype™
Цитата:
Сообщение от dimarik Посмотреть сообщение
Не забываем о событиях.
вечная память)
__________________
freelance | Раздор

Старый 22.10.2011, 10:39
stweet вне форума Посмотреть профиль Отправить личное сообщение для stweet Найти все сообщения от stweet
  № 18  
Ответить с цитированием
stweet
 
Аватар для stweet

Регистрация: Mar 2010
Адрес: 54.713862552265084 = 20.442724227905273
Сообщений: 449
Отправить сообщение для stweet с помощью Skype™
Возможно я поспешил с выводами о ENTER_FRAME && TIMER т.к. получилось высказать сугубо личное мнение но и мнение сложилось с огромной пачки советов во время познания тонкостей оптимизации.

В первую очередь "в своё оправдание =)" хочу предложить прочитать главу "Программная анимация" ст.677 из книги К.Мука "AS3 Подробное руководство". Там как раз замечательно описывается в каких случаях и какой метод использовать. Я не отрицал ENTER_FRAME, вероятно я привел пример на TIMER т.к. сам пользуюсь только им. В общем я не использую в своих приложениях ENTER_FRAME, никогда. Все приложения которые я написал работают только на ОДНОМ TIMER-е, для многих думаю это удивительно но факт. Вопрос как можно одновременно использовать кучу анимационных объектов затронув всего один TIMER?
Вот тут на помощь приходит знания оптимизации. Которые можно черпнуть из таких книг как "Совершенный код", "300 рецептов AS3", "Оптимизация - советы профессионалов AS3". Своими словами я тут до седины буду расписывать как, что и зачем, по этому порекомендовал книги. Но на своём опыте я убедился в том что на любое приложение достаточно в основном классе зарегистрировать все один раз таких слушателей как:
Код AS3:
stage.addEventListener(MouseEvent.MOUSE_DOWN, MOUSE_DOWN);
stage.addEventListener(MouseEvent.MOUSE_UP, MOUSE_UP);
stage.addEventListener(MouseEvent.MOUSE_OVER, MOUSE_OVER);
stage.addEventListener(MouseEvent.MOUSE_OUT, MOUSE_OUT);
timer.addEventListener(TimerEvent.TIMER, TIMER);
Естественно сейчас наклон в пользу интерфейсов, но пока интерфейсы это самый удобный вариант, лучше ни чего ни нашёл. Если кого интересует как это всё работает, можем запустить ветку в пользу начинающим и на примере какой нибудь игрушки описать тонкости, собственно там их и обсуждать, этак сказать, на месте. Но тогда тема пойдёт о оптимизации.
__________________
Спросишь, дурак на минуту. Если не спросишь, дурак на всю жизнь!

Старый 22.10.2011, 15:07
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 19  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
С каких это пор таймер для анимации стал лучше, чем ENTER_FRAME, который, к тому же, "всегда есть уже" хочешь ты того или нет?
__________________
Поймай яблоко 2!

Старый 22.10.2011, 17:07
stweet вне форума Посмотреть профиль Отправить личное сообщение для stweet Найти все сообщения от stweet
  № 20  
Ответить с цитированием
stweet
 
Аватар для stweet

Регистрация: Mar 2010
Адрес: 54.713862552265084 = 20.442724227905273
Сообщений: 449
Отправить сообщение для stweet с помощью Skype™
Интересно, аргументы в пользу ENTER_FRAME(А)? На самом деле, стало интересно, как организуют анимации за счёт ENTER_FRAME(А), чем выигрывает такой подход?
__________________
Спросишь, дурак на минуту. Если не спросишь, дурак на всю жизнь!

Создать новую тему Ответ Часовой пояс GMT +4, время: 00:13.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

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

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


 


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


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