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

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

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

Регистрация: Jun 2008
Адрес: курский вокзал
Сообщений: 1,114
По умолчанию Оптимизация Event.RESIZE

Проблема - делаю элементы интерфейса, все наследуются от UIComponent, который реализует методы left, right, top и bottom.Вопрос куда вставлять обработчик Event.RESIZE в главный класс и циклом или рескурсией обходить все элементы, или в UIComponent?
__________________
Я просто добрый шутник.

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

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
ИМХО не с того конца оптимизируете - разница между 2-мя методами хорошо если в 0.1% будет - основная обработка будет не в вызовах а выполнении кода resize кучи других вспопогательных Flex-совых методов.

Не мудрите, вешайте обработчик в каждом компоненте, или повесте в суперклассе, если это возможно.

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

Регистрация: Jun 2008
Адрес: курский вокзал
Сообщений: 1,114
Причем тут Flex?
__________________
Я просто добрый шутник.

Старый 15.02.2010, 14:20
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 4  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
Опа, я не понял, что речь про собственный gui.

Цитата:
вставлять обработчик Event.RESIZE в главный класс
Это про контейнер нескольких элементов или про супер-класс(но тогда не понятно что за рекурсия)?

Событие Event.RESIZE - это событие конкретного компонента, что вы там рекурсией собрались обходить.

Можно поподробнее об архитектуре? Не понятно.

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

Регистрация: Jun 2008
Адрес: курский вокзал
Сообщений: 1,114
Изобразим:
Есть базовый класс UIComponent, он объявляет методы left,top,right,bottom, в которых рассчитываются ширина и высота относительно родителя.от UIComponent наследуются все остальные классы(кнопки, скроллы, и проч.)
Теперь, есть главный класс приложения Main.
Соответственно:
1) я могу в Main прописать Event.RESIZE на stage и в цикле обойти всех детей, внуков, если они от UIComponenta образованы, то пересчитать их размеры.
2)повесть Event.RESIZE внутри UIComponent и пересчитывать там.

Тогда в 1 варианте будет один листнер, а во втором куча.
__________________
Я просто добрый шутник.

Старый 16.02.2010, 00:52
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 6  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
Все же, я бы о производительности так не пекся. Подозреваю, что вручную перебрать побыстрее - эвенты всетки не создаются, функций по меньше вызывается, но увидите ли вы эту разницу?
Бескопокоит - пробуйте 2 метода и замеряйте время

Как лучше с точки зрения архитектуры?
Цитата:
он объявляет методы left,top,right,bottom, в которых рассчитываются ширина и высота
Ну если UIComponent имеет больше информации, чтобы рассчитать эти размеры - значит будет рассчитывать он
Если болше о том, куда положить компонент знает родитель - пусть он и расставляет и меняет размеры, а ребенок - только не допускает установки некорректных

Короче как удобней, так и делайте

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

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

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


 


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


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