Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Получение url-а в выгружаемой флешке (http://www.flasher.ru/forum/showthread.php?t=208361)

bulavka 03.07.2014 14:36

Получение url-а в выгружаемой флешке
 
Привет.

Получаю во флешке url, вывожу в текстовое поле, компилирую - все ок выводит.
Код AS3:

txt.text  = String(root.loaderInfo.url);

Далее я в другую флешку выгружаю эту и.. ничего не работает, выводит null. Как можно исправить?

dimarik 03.07.2014 16:47

Подождать окончания загрузки.

bulavka 03.07.2014 17:29

Ахахах... спасибо. А можно ли как-то узнать адрес флешки, которая выгружает другую флешку. Т.е. в swf2 узнать адрес swf1?

dimarik 03.07.2014 17:35

Да, конечно. Обратитесь к loaderInfo.url любого объекта, находящегося в display list соответствующего поддерева нужной swf.

bulavka 03.07.2014 17:47

Цитата:

Сообщение от dimarik (Сообщение 1168688)
Да, конечно. Обратитесь к loaderInfo.url любого объекта, находящегося в display list соответствующего поддерева нужной swf.

Я новичок и совсем не знаком с этим, но спасибо.. попробую загуглить

Добавлено через 10 минут
Что-то не очень понимаю, можете подсказать, как реализовать?

dimarik 03.07.2014 18:25

Если граф в виде дерева (иерархии) вас не пугает, то всю эту флешовую байду можно спокойно понять. Самый Главный объект -- это Stage. К нему крепится самый первый объект создаваемой swf (загрузчика) это его экземпляр Document class. По сути, когда из любого объекта поддерева, принадлежащего этому Document class, вы обращаетесь к свойству root, оно всегда покажет на экземпляр Document class. Это справедливо и для loaderInfo.url, но, повторюсь, поддерево должно находиться в родственных отношениях к Document class, т.е. должно существовать в его графе.
Теперь представьте, что мы загрузили другую swf. У неё есть свой документ класс. Кстати, это понятие (Document class) не очень официальное и не совсем передает суть. Как так: говорю об экземпляре и одновременно о классе? Скорее оно пошло из Flash IDE, в котором было поле для заполнения названия главного класса, точке входа в приложение. Кстати, именно поэтому у точки входа есть stage в конструкторе, но только у т.н. Stage owner приложения, запускаемого самым первым. Остальные подгружаемые не имеют stage в своем конструкторе. О, вернемся к загрузке. У той swf есть свой экземпляр своего документ класса. Который крепится к графу в точке Stage. Так вот, нода первого экземпляра swf и нода второй swf являются поддеревами их самих. Если из любого визуального объекта, находящегося в этих поддеревах, спросить откуда он был загружен через свойства DisplayObject#loaderInfo#url, то они честно расскажут.

bulavka 03.07.2014 18:56

Цитата:

Сообщение от dimarik (Сообщение 1168697)
Если граф в виде дерева (иерархии) вас не пугает, то всю эту флешовую байду можно спокойно понять. Самый Главный объект -- это Stage. К нему крепится самый первый объект создаваемой swf (загрузчика) это его экземпляр Document class. По сути, когда из любого объекта поддерева, принадлежащего этому Document class, вы обращаетесь к свойству root, оно всегда покажет на экземпляр Document class. Это справедливо и для loaderInfo.url, но, повторюсь, поддерево должно находиться в родственных отношениях к Document class, т.е. должно существовать в его графе.
Теперь представьте, что мы загрузили другую swf. У неё есть свой документ класс. Кстати, это понятие (Document class) не очень официальное и не совсем передает суть. Как так: говорю об экземпляре и одновременно о классе? Скорее оно пошло из Flash IDE, в котором было поле для заполнения названия главного класса, точке входа в приложение. Кстати, именно поэтому у точки входа есть stage в конструкторе, но только у т.н. Stage owner приложения, запускаемого самым первым. Остальные подгружаемые не имеют stage в своем конструкторе. О, вернемся к загрузке. У той swf есть свой экземпляр своего документ класса. Который крепится к графу в точке Stage. Так вот, нода первого экземпляра swf и нода второй swf являются поддеревами их самих. Если из любого визуального объекта, находящегося в этих поддеревах, спросить откуда он был загружен через свойства DisplayObject#loaderInfo#url, то они честно расскажут.

То есть вызвать этот url надо так? stage.DisplayObject.loaderInfo.url или как?

dimarik 04.07.2014 10:34

http://help.adobe.com/en_US/FlashPla...html#loaderURL


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

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