Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   PopupManager помогите решить проблему (http://www.flasher.ru/forum/showthread.php?t=187428)

alatar 20.11.2012 21:06

Ох уж этот FlashDevelop. Из флеш плеера скопируйте.

Vasyaga 21.11.2012 11:48

Код:

ArgumentError: Error #2025: Предоставленный DisplayObject должен быть дочерним элементом вызывающего объекта.
        at flash.display::DisplayObjectContainer/getChildIndex()
        at mx.managers::SystemManager/getChildIndex()[E:\dev\4.y\frameworks\projects\framework\src\mx\managers\SystemManager.as:1823]
        at mx.managers.systemClasses::ActiveWindowManager/mouseDownHandler()[E:\dev\4.y\frameworks\projects\framework\src\mx\managers\systemClasses\ActiveWindowManager.as:483]
        at flash.events::EventDispatcher/dispatchEventFunction()
        at flash.events::EventDispatcher/dispatchEvent()
        at mx.core::UIComponent/dispatchEvent()[E:\dev\4.y\frameworks\projects\framework\src\mx\core\UIComponent.as:13152]
        at mx.managers::SystemManager/mouseEventHandler()[E:\dev\4.y\frameworks\projects\framework\src\mx\managers\SystemManager.as:2918]

Оно?

AlexCooper 21.11.2012 12:07

насколько я понимаю у вас не соответствие родителя с наследником. По простому вы вызываете mc.getChildIndex(spr) где spr не относиться к mc.

Vasyaga 21.11.2012 12:13

AlexCooper, спасибо, кэп ;) Только вот я ничего нигде не вызываю! До этого не доходит, перед CLICK срабатывает MOUSE_DOWN. Инициализация листнера, видимо, происходит при инициализации статического класса PopUpManager. По идее, я вообще не должен заморачиваться на внутренней реализации этого класса, ибо это часть Flex framework. Но приходится ;)

AlexCooper 21.11.2012 12:44

Кэп всегда на стрёме))

alatar 21.11.2012 12:53

Код вашего Application с кнопками привести можете? Или минимальный пример в котором воспроизводится это поведение.

Vasyaga 21.11.2012 13:33

Небольшую зацепку нашел: у меня в основном mxml после инициализации создается объект MainWindow (потомок Application), который затем добавляется методом addElement к основному application. Уже в экземпляре MainWindow я пытаюсь вызывать PopUpManager.addPopUp и это дает ошибку (по-прежнему непонятно почему). Если я делаю тот же вызов PopUpManager.addPopUp в главном mxml, то всё работает нормально. Буду признателен, если у кого-нибудь есть мысли по этому поводу. Пока что перемещу всё в основной mxml и буду оттуда вызывать popup-ы.

GBee 21.11.2012 14:09

А у вас spark или mx? Просто везде в трейсах вижу мх, а используете addElement, который вроде как спарка.

Vasyaga 21.11.2012 14:13

GBee, в spark используется mx-овский PopUpManager: http://help.adobe.com/en_US/flex/usi...0dcf-8000.html (см. пример ниже по тексту страницы)

GBee 21.11.2012 15:51

А вы так и не ответили.

Да я так размышляю. Вы добавляете с помощью addElement. А валится на getChildIndex(), хотя по идее должен использовать getElementIndex(). То есть какая-то запутка все-таки есть, поэтому я и спрашиваю у вас Аппликейшен мх или спарк? И, по идее, указание FlexGlobals.topApplication в качестве парента должно помочь в таком случае.


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

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