Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Загрузка swf файлов в AIR (Android) (http://www.flasher.ru/forum/showthread.php?t=184864)

wapmaster 28.09.2012 16:54

Загрузка swf файлов в AIR (Android)
 
Здравствуйте.
Появилась необходимость сделать простенькое приложение на AIR под Android.
Приложение должно грузить с сервера swf файлы и добавлять из себе не стейдж после загрузки.
Собственно все бы хорошо и вроде как все просто если бы не одно НО, а именно то, что при попытке запустить приложение падает с ошибкой SecurityError: Error #3207: Application-sandbox content cannot access this feature.
Ошибка появляется на строке Security.allowDomain("*");

Подскажите как это поправить, так как на форуме ничего по этому поводу не нашел...

NikolyA 28.09.2012 17:07

попробуй так:
Код AS3:

var context:LoaderContext = new LoaderContext();
context.applicationDomain = new ApplicationDomain();
context.securityDomain = SecurityDomain.currentDomain;


wapmaster 28.09.2012 17:25

Не катит...
Security sandbox violation: local SWF files cannot use the LoaderContext.securityDomain property. app:/AndroidTestApp.swf was attempting to load http://application.test/slots/BaseEngine.swf.

NikolyA 28.09.2012 17:31

а попробуй загрузить свой удаленный SWF через URLLoader, а затем loadBytes кажись и вообще код бы посмотреть или класс

wapmaster 28.09.2012 17:39

Код AS3:

public function Main():void 
                {
                        stage.scaleMode = StageScaleMode.NO_SCALE;
                        stage.align = StageAlign.TOP_LEFT;
                        stage.addEventListener(Event.DEACTIVATE, deactivate);
 
                        // touch or gesture?
                        Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT;
 
                        // entry point
                        //Security.allowDomain("*");
                        //Security.allowInsecureDomain("*");
                        init();
                }
 
                private function init():void
                {
                        _loader = new Loader();
                        _loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoadComplete);
                        _loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onLoadError);
                        _loader.load(new URLRequest("http://application.test/slots/BaseEngine.swf"));
                }
 
                private function onLoadError(e:Event):void
                {
                        trace("ERROR");
                }
 
                private function onLoadComplete(e:Event):void
                {
                        trace("!!!");
                        addChild(e.target.content);
                }
 
                private function deactivate(e:Event):void
                {
                        // auto-close
                        NativeApplication.nativeApplication.exit();
                }

в такой ситуации просто заходит в функцию onLoadError

in4core 28.09.2012 17:42

wapmaster - crossdomain must have!

wapmaster 28.09.2012 17:49

сделал crossdomain. как-то не помогло...

alatar 28.09.2012 21:39

Цитата:

Сообщение от wapmaster (Сообщение 1097808)
Ошибка появляется на строке Security.allowDomain("*");

Security#allowDomain()
Цитата:

Примечание. При вызове этого метода из кода в изолированной среде безопасности приложения AIR порождается исключение SecurityError. Содержимое за пределами домена защиты приложения не может выполнять перекрестные сценарии для находящегося в ней содержимого. Однако содержимое, находящееся за пределами изолированной программной среды приложения, может обращаться к содержимому в этой среде с помощью так называемого моста.


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

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