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

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

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

Регистрация: Jul 2012
Сообщений: 10
Записей в блоге: 1
По умолчанию Как сделать s:TitleWindow (не)активным без PopUpManager'а?

Как сделать s:TitleWindow (не)активным без PopUpManager'а? (То есть, речь идет не о фокусе и не об enabled, а о состояниях, которые inactiveGroup) Менять currentState вручную или наследоваться от него видится мне слегка костыльным, когда все, что нужно там уже есть. Но, к сожалению, свойство active у TitleWindow приватное, и изменить извне его можно только через слушатель:
Код AS3:
//TitleWindow.as
 
private function activateHandler(event:Event):void
{
    active = true;
    invalidateSkinState();
}
 
private function deactivateHandler(event:Event):void
{
    active = false;
    invalidateSkinState();
}
 
private function addActivateHandlers():void
{
    focusManager.addEventListener(FlexEvent.FLEX_WINDOW_ACTIVATE, 
        activateHandler, false, 0, true);
    focusManager.addEventListener(FlexEvent.FLEX_WINDOW_DEACTIVATE, 
        deactivateHandler, false, 0, true);
}
Но тут начинается магия. Как диспатчить эти события совершенно непонятно, ведь focusManager - один на контейнер, а в FlexEvent'е никакой информации о том, к чему именно оно относится, нет. Само собой, это не работает:
Код AS3:
titleWindow.focusManager.dispatchEvent(new FlexEvent(FlexEvent.FLEX_WINDOW_DEACTIVATE));
Но как-то же оно работает в PopUpManager'e, хотя в исходнике PopUpManagerImpl ничего к этому относящегося не нашел. Какие тут есть варианты?

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

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

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


 


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


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