Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Как достучаться до UIComponent? (http://www.flasher.ru/forum/showthread.php?t=121134)

enepx 08.02.2009 18:34

Как достучаться до UIComponent?
 
Вложений: 1
Привет,
такая проблема: достаю спрайт из внешней swf с помощью конструкции вида:
Код AS3:

... _loader.loader.contentLoaderInfo.applicationDomain.getDefinition(symbolName) ...

Все корректно работает, за исключением того случая, когда в спрайте лежит UIComponent, он просто игнорирует его:
Код AS3:

_urlTxt = getBodyElement("urlEditBox") as TextInput;
trace(_urlTxt);

где getBodyElement - функция, которая получает новый экземпляр спрайт из либы и вытягивает из него DisplayObject по имени.

Может так нельзя делать с UIComponent?

etc 08.02.2009 20:36

И что трейсится? null?

silin 08.02.2009 20:38

не удалось воспроизвести трабл
смотрел так:
Код AS3:

private function loaderCompleteHandler(evnt:Event):void 
{
        //Box - класс спрайта в подгружаемой либе
        var boxClass:Class = _loader.contentLoaderInfo.applicationDomain.getDefinition("Box") as Class;
        var box:Sprite = new boxClass();
        //urlEditBox - имя компонента в Box'е
        var urlEditBox:TextInput = box.getChildByName("urlEditBox") as TextInput;
 
        //вариант, когда TextInput нет в загружающей флешке - тоже работает
        //var urlEditBox:DisplayObject = box.getChildByName("urlEditBox");
 
        addChild(urlEditBox);//достается со всеми установленными параметрами
}


enepx 08.02.2009 21:08

Странно, у меня null.
Может потому что я достаю не getChildByName, а box["name"]?
(сейчас не за тем компом, потому проверить не могу :( )

etc 08.02.2009 21:12

Скорее всего возвращается либо изначально null, либо не TextInput.

enepx 08.02.2009 21:35

странно, я там хоть какое имя пишу, все равно null, ему все равно. но ошибку не показывает. если пишу неверное имя какого-нить MovieClip, то показывает ошибку. может к UI нельзя так обращаться по имени?

etc 08.02.2009 21:48

enepx, в общем, машина не едет, что-то под капотом, определенно. Вы даже текст ошибки не потрудились здесь написать, ограничившись словами «показывает ошибку». Я уже не говорю про отсутствие кода метода (глобальной функции?) getBodyElement. Ну коли так, ковыряйтесь сами, мне надоело вытягивать информацию клещами.


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

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