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

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

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

Регистрация: Feb 2009
Адрес: WS
Сообщений: 93
По умолчанию PopupManager помогите решить проблему

Недавно столкнулся с проблемой: В приложении есть окно с контролами. Фактически, оно является дочерним элементом контейнера Application. В этом окне при нажатии на кнопку пытаюсь вызвать модальный popup-диалог с помощью PopUpManager. Выдает следующую ошибку:
Код:
[Fault] exception, information=ArgumentError: Error #2025: Предоставленный DisplayObject должен быть дочерним элементом вызывающего объекта.
Вызываемый модальный диалог унаследован от TitleWindow. Причем способ вызова всплывающего окна не важен - хоть PopupManager.createPopup, хоть PopupManager.addPopup (для уже созданного экземпляра диалога). Пытался отладчиком посмотреть - никаких результатов - ошибка вылетает после клика, но до захода в обработчик события нажатия на кнопку. Похоже, событие перехватывается SystemManager. Вот скриншот стека во время ошибки:

Есть ли у кого мысли по этому поводу? Всю голову сломал

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

блогер
Регистрация: Sep 2009
Сообщений: 2,463
Записей в блоге: 2
Желательно хотя бы минимум кода. Одно окно вызывается из другого окна?
__________________
In Code We Trust

Старый 19.11.2012, 13:59
Vasyaga вне форума Посмотреть профиль Отправить личное сообщение для Vasyaga Найти все сообщения от Vasyaga
  № 3  
Ответить с цитированием
Vasyaga

Регистрация: Feb 2009
Адрес: WS
Сообщений: 93
Код AS3:
		public function popupWizard() : IFlexDisplayObject {
			var displayObject:IFlexDisplayObject =PopUpManager.createPopUp(this, GalleryWizard, true);
			return displayObject;
		}
Функция popupWizard описана в mxml-е вызывающего окна. GalleryWizard - наследник TitleWindow

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

блогер
Регистрация: Sep 2009
Сообщений: 2,463
Записей в блоге: 2
Так ошибка в этой строке var displayObject:IFlexDisplayObject =PopUpManager.createPopUp(this, GalleryWizard, true); ? В каком именно параметре?

Можно попробовать вместо parent использовать FlexGlobals.topLevelAplication
__________________
In Code We Trust

Старый 19.11.2012, 15:49
Vasyaga вне форума Посмотреть профиль Отправить личное сообщение для Vasyaga Найти все сообщения от Vasyaga
  № 5  
Ответить с цитированием
Vasyaga

Регистрация: Feb 2009
Адрес: WS
Сообщений: 93
В том-то и дело, что ни в каком параметре ошибки нет! Ошибка возникает раньше. Опишу по шагам:
1) Ставлю breakpoint отладчика на строку вызова popup.
2) Запускаю приложение и дебаг не доходит до обработчика события CLICK и тем более до вызова PopUpManager.
3) Если закомментировать весь код с PopUpManager, то все начинает работать без ошибок

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

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Цитата:
В приложении есть окно с контролами.
Какое окно? Созданное PopUpManager?

Цитата:
Похоже, событие перехватывается SystemManager.
SystemManager подписывается на capture фазу события MOUSE_DOWN.

Стек полностью приведите.
Посмотрите что приходит в качестве target в mouseEventHandler в SystemManager или в mouseDownHandler в ActiveWindowManager.
__________________
משיח לא בא
משיח גם לא מטלפן

Старый 20.11.2012, 09:25
Vasyaga вне форума Посмотреть профиль Отправить личное сообщение для Vasyaga Найти все сообщения от Vasyaga
  № 7  
Ответить с цитированием
Vasyaga

Регистрация: Feb 2009
Адрес: WS
Сообщений: 93
Цитата:
Какое окно? Созданное PopUpManager?
Нет, это mxml-Application (не обязательно верхнего уровня), которое будет родителем для созданного PopUpManager-ом окна
Цитата:
SystemManager подписывается на capture фазу события MOUSE_DOWN.

Стек полностью приведите.
Посмотрите что приходит в качестве target в mouseEventHandler в SystemManager или в mouseDownHandler в ActiveWindowManager.
Хорошо, посмотрю, спасибо.

Старый 20.11.2012, 11:32
Vasyaga вне форума Посмотреть профиль Отправить личное сообщение для Vasyaga Найти все сообщения от Vasyaga
  № 8  
Ответить с цитированием
Vasyaga

Регистрация: Feb 2009
Адрес: WS
Сообщений: 93
alatar, по target: Действительно, отрабатывается событие 'MOUSE_DOWN' в ActiveWindowManager. В качестве target там присутствует контрол, на котором нажата кнопка мыши. Естественно, target меняется в зависимости от того, на что нажали.
В качестве currentTarget там выступает экземпляр SystemManager с классом документа (главный mxml) в качестве child. Скриншот стека во вложении.
Теряюсь в догадках в чем может быть проблема.
Я просто не могу понять сути - откуда ошибка? В чем разница между адобовским примером и моим приложением?
Миниатюры
Нажмите на изображение для увеличения
Название: stack popup error 2.png
Просмотров: 39
Размер:	33.8 Кб
ID:	28692  

Старый 20.11.2012, 19:35
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 9  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Цитата:
Скриншот стека во вложении.
Трейс стека можно взять из консоли в виде текста. Что толку от ваших обрезков?
__________________
משיח לא בא
משיח גם לא מטלפן

Старый 20.11.2012, 20:13
Vasyaga вне форума Посмотреть профиль Отправить личное сообщение для Vasyaga Найти все сообщения от Vasyaga
  № 10  
Ответить с цитированием
Vasyaga

Регистрация: Feb 2009
Адрес: WS
Сообщений: 93
Цитата:
Трейс стека можно взять из консоли в виде текста. Что толку от ваших обрезков?
Я, конечно, извиняюсь, но как это сделать во FlashDevelop?

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

Теги
dialog , modal , PopUpManager

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

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


 


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


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