![]() |
|
||||||||||
|
|||||
|
Регистрация: Apr 2011
Сообщений: 10
|
Возможно ли загрузить внешние swf в текущий домен приложения?
var currentDomain:ApplicationDomain = ApplicationDomain.currentDomain; ..... var loader:Loader = new Loader(); var url:URLRequest = new URLRequest("someswf"); var context:LoaderContext = new LoaderContext(false, ApplicationDomain.currentDomain); loader.load(new URLRequest(url), context); возвращало true. В таком виде возвращает false. Подскажите, пожалуйста |
|
|||||
|
Modus ponens
|
Должно работать в принципе, проверьте, что правильно написаны имена. (Возможно нужно еще и SecurityDomain) это дело темное, его меняли несколько раз, и сами теперь не разберутся, как оно работает... так что методом тыка.
Кроме всег прочего - на iOS такое работать не будет, т.как там байткод другой.
__________________
Hell is the possibility of sanity |
|
|||||
|
Регистрация: Apr 2011
Сообщений: 10
|
Что-то совсем ничего не выходит. Может я что-то не так делаю? Вот код:
.. var loader:Loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler); loader.load(new URLRequest("test.swf"), new LoaderContext(false, ApplicationDomain.currentDomain)); ... private function completeHandler(event:Event):void { trace("======"); trace(ApplicationDomain.currentDomain.hasDefinition("TestMC")); // output false trace("======"); trace("+++++++++"); trace((event.currentTarget as LoaderInfo).applicationDomain.hasDefinition("TestMC")); // output true trace("+++++++++"); } |
|
|||||
|
Регистрация: Nov 2010
Сообщений: 497
|
Вам же wvxvw уже написал про SecurityDomain. В вашем коде я его упоминаний не вижу.
В документации по LoaderContext.applicationDomain есть фраза "If you are loading a SWF file from another domain, and allowing it to be placed in a separate security domain, then you cannot control the choice of application domain into which the loaded SWF file is placed; and if you have specified a choice of application domain, it will be ignored". В документации по LoaderContext.securityDomain читаем "You can allow the loaded SWF file to be placed in its "natural" security domain, which is different from that of the loading SWF file; this is the default. ". Судя по вашему выводу, вы грузите файл из другого securityDomain. Он автоматически попадает в новый securityDomain (так как вы не просили грузить его к себе), а там речи о каком-либо applicationDomain не может быть (они работают строго в пределах одного securityDomain). |
|
|||||
|
Регистрация: Apr 2011
Сообщений: 10
|
maxkar, это Вы всё правильно написали про SecurityDomain, но дело в том, что загрузка происходит локально. А для локальной загрузки LoaderContext не поддерживает свойство SecurityDomain (и я так понимаю, что все данные помещаются в один SecurityDomain). Я сейчас создал тестовый проект, в котором отобразил предыдущий свой код. Всё равно ничего не работает.
Какая-то мука с этими доменами! Может кто встречался с подобной проблемой? |
|
|||||
|
Регистрация: May 2010
Сообщений: 543
|
Была похожая проблема. Большая вероятность того, что вы загружаете в файл не из той же папки.
Цитата:
C:\Users\[user_name]\AppData\Roaming\Macromedia\Flash Player\#Security\FlashPlayerTrust Для вашей операционки - гуглите ![]()
__________________
Вы грабите бедных людей. Парень со свирелью накажет вас. Хонгильдон (с) |
![]() |
![]() |
Часовой пояс GMT +4, время: 02:25. |
|
|
« Предыдущая тема | Следующая тема » |
|
|