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

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

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

Регистрация: Mar 2012
Сообщений: 9
По умолчанию Оптимизация событий

Всем привет. Я здесь новичок, и на AS3 тоже)
Недавно наткнулся здесь на одно интересное сообщение. Там говорилось, что якобы надо экономить на Слушателей событий. У меня есть приложение на AS3, и в нем очень много кнопок, формы для фокуса и т.д.
Вопрос лишь в том, какие еще способы существуют обхода или экономия Слушателей?
Ведь слабые ссылки не всегда бывают к месту, полагаю доверятся Сборщику нужно не всегда. А удалять после вызова со Стейджа вообще не хочется.
Может и ошибаюсь. Подскажите в чем подвох?

Добавлено через 22 минуты
Извиняюсь господа. Только что нашел нужный ответ на свой вопрос.
http://help.adobe.com/ru_RU/as3/mobi...ng_content.pdf
Прям то что надо. Захват событий и цепочка событий.
Тему можете закрывать.

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

Регистрация: Oct 2010
Адрес: Харьков
Сообщений: 616
Записей в блоге: 1
Отправить сообщение для strangedk с помощью ICQ Отправить сообщение для strangedk с помощью Skype™
Прежде всего, не забывайте отписываться от событий которые уже не нужны.
И также, хорошим тоном считается подписываться на события только тогда, когда они гарантировано могут возникнуть.

И что значит "удалять после вызова со Стейджа вообще не хочется", слабо понял.
__________________
adobe AS3 manual

Старый 28.03.2012, 02:55
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 3  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Для начала неплохо бы определится со следующими вещами:
- В какой области существует проблема?
Если проблемы пока что нет, это не значит, что ее не существует, это значит, что вы ее еще не нашли, но пока не найдете - решать бесполезно.
- Если проблема обнаружена в использовании памяти - с этим нужно бороться отдельно. И тут слушатели ни при чем, т.как слушатели это функции, их все равно одинаковое количество (если вы не используете динамически созданные функции). Ваша задача определить объекты, которые занимают память. Это может быть объекты, которые должны были быть удалены, но не были удалены потому, что все еще подписаны на события. В таком случае находите такие объекты, определяете, когда они уже не нужны, и отписываете их от событий. Это могут быть объекты событий, которые вы производите в чрезмерных количествах - руководствуясь здравым смыслом вы часто можете сократить количество созданных событий иногда подписавшись на событие только в одном месте, и использовав callback'и в других (так, чтобы не создавать новые объекты).
- Если проблема обнаружена в производительности - т.е. функции выполняются медленнее чем хотелось бы - это совсем другая история. Опять же, руководствуясь здравым смыслом почти всегда можно найти способ как заставить тот или иной алгоритм выполнятся быстрее. Это почти наверняка не связано с событиями / слушателями.
__________________
Hell is the possibility of sanity

Старый 28.03.2012, 03:19
Котяра вне форума Посмотреть профиль Отправить личное сообщение для Котяра Посетить домашнюю страницу Котяра Найти все сообщения от Котяра
  № 4  
Ответить с цитированием
Котяра
буду краток
 
Аватар для Котяра

модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
Отправить сообщение для Котяра с помощью ICQ Отправить сообщение для Котяра с помощью Skype™
растекаемый ответ на растекаемый вопрос)
__________________
Отряд Котовскага

Старый 28.03.2012, 05:23
MyLogin вне форума Посмотреть профиль Отправить личное сообщение для MyLogin Найти все сообщения от MyLogin
  № 5  
Ответить с цитированием
MyLogin

Регистрация: Mar 2012
Сообщений: 9
Цитата:
Сообщение от strangedk Посмотреть сообщение
И что значит "удалять после вызова со Стейджа вообще не хочется", слабо понял.
Имел в виду, что те самые важные элементы на сцене будут использоваться часто, и отписываться от них ради оптимизации, рисковать то есть не хочется.

Старый 28.03.2012, 05:32
MyLogin вне форума Посмотреть профиль Отправить личное сообщение для MyLogin Найти все сообщения от MyLogin
  № 6  
Ответить с цитированием
MyLogin

Регистрация: Mar 2012
Сообщений: 9
Цитата:
Сообщение от wvxvw Посмотреть сообщение
- Если проблема обнаружена в производительности - т.е. функции выполняются медленнее чем хотелось бы - это совсем другая история. Опять же, руководствуясь здравым смыслом почти всегда можно найти способ как заставить тот или иной алгоритм выполнятся быстрее. Это почти наверняка не связано с событиями / слушателями.
Да, именно дело касаемо производительности я в этом событийном модели очень запутался.
Не могу понять, почему при событии изменения окна (Resize) почти все элементы у меня тормозят?
Решил отключить некоторые слушатели, после этого стало немного быстрее, вот и возникла необходимость зарегаться здесь вспомнив то сообщение, что злоупотреблять слушателями не стоит. Но как именно найти ту золотую серединку и более рационально суметь использовать ресурсы проца, не могу понять.
Скажем, если на сцене висит около 30 форм, и 5-6 кнопок, а что делать в таком случае?

Старый 28.03.2012, 10:04
anmelegov вне форума Посмотреть профиль Отправить личное сообщение для anmelegov Найти все сообщения от anmelegov
  № 7  
Ответить с цитированием
anmelegov
[+4 07.04.12]
[+1 20.01.12]

Регистрация: Nov 2009
Адрес: Украина, Славутич
Сообщений: 263
Цитата:
Сообщение от MyLogin Посмотреть сообщение
Решил отключить некоторые слушатели, после этого стало немного быстрее
показалось

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

Регистрация: Oct 2010
Адрес: Харьков
Сообщений: 616
Записей в блоге: 1
Отправить сообщение для strangedk с помощью ICQ Отправить сообщение для strangedk с помощью Skype™
Цитата:
Сообщение от MyLogin Посмотреть сообщение
Имел в виду, что те самые важные элементы на сцене будут использоваться часто, и отписываться от них ради оптимизации, рисковать то есть не хочется.
Так не о том речь) понятно что от кнопок отписываться не нужно, если они постоянно в использовании.
Речь о событиях которые возникают например один раз, загрузка настроек из XML, или запрос на сервер.

Вообще в таких случаях принято применять такую практику:

Допустим есть какая-то кнопка, и при нажатии на неё загружается XML. Слушатель на кнопке пусть будет всегда, а вот слушатели на тот самый URLLoader необходимо добавлять только после нажатия на кнопку, и удалять после любого результата загрузки.
__________________
adobe AS3 manual

Старый 28.03.2012, 14:55
anmelegov вне форума Посмотреть профиль Отправить личное сообщение для anmelegov Найти все сообщения от anmelegov
  № 9  
Ответить с цитированием
anmelegov
[+4 07.04.12]
[+1 20.01.12]

Регистрация: Nov 2009
Адрес: Украина, Славутич
Сообщений: 263
не он походу растягивает какое-то окно и при изменении размера на каждый пиксель (ну чаще чем интерфрейм в фпс игре) у него идет рассылка по всем компонентам

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

Регистрация: Oct 2010
Адрес: Харьков
Сообщений: 616
Записей в блоге: 1
Отправить сообщение для strangedk с помощью ICQ Отправить сообщение для strangedk с помощью Skype™
При resize безусловно должен быть какой-то update, но в этом плане было бы полезно осуществить что-то похожее на commitProperties и Invalidate которые во Flex

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

Тогда и производительность будет больше.
__________________
adobe AS3 manual

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

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

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


 


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


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