Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   ApplicationDomain и интерфейсы (http://www.flasher.ru/forum/showthread.php?t=144282)

gloomyBrain 08.09.2010 14:41

там должно быть ApplicationDomain.currentDomain =)
недописал

Однако, сути вопроса это не меняет

etc 08.09.2010 14:57

У меня работает так:
Код AS3:

package {
        import flash.display.Loader;
        import flash.display.Sprite;
        import flash.events.Event;
        import flash.net.URLRequest;
        import flash.system.ApplicationDomain;
        import flash.system.LoaderContext;
        import flash.utils.setTimeout;
 
        /**
        * @author                                        etc
        * @version                                        1.0
        * @playerversion                        Flash 10
        * @langversion                                3.0
        */

        public class GameLoader extends Sprite {
 
                public function GameLoader() {
                        super();
                        this._loader = new Loader();
                        this._domain = new ApplicationDomain(ApplicationDomain.currentDomain);
                        this._loader.contentLoaderInfo.addEventListener(Event.COMPLETE, this.handler_complete);
                        this._loader.load(new URLRequest('Game.swf'), new LoaderContext(false, this._domain));
                }
 
                /**
                * @private
                */

                private var _loader:Loader;
 
                /**
                * @private
                */

                private var _domain:ApplicationDomain;
 
                /**
                * @private
                */

                private function handler_complete(event:Event):void {
                        this._loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, this.handler_complete);
                        trace(this._loader.content is IGame); // true
                }
 
                /**
                * @private
                */

                private function unload():void {
                        this._domain = null;
                        this._loader.unloadAndStop(true);
                        this._loader = null;
                }
        }
}

Единственное что из домена Game не пропадает, поэтому его занулять приходится, хотя помнится при такой же схеме у нас пропадал. Можно попробовать грузить в текущий.

gloomyBrain 08.09.2010 15:29

Все кастуется на самом деле и удаляется с использованием указанного Вами подхода.
У меня не кастовалось в среде разработки, очевидно из-за securityDomain (потому что больше я причин не вижу, в браузере все работает и трейсит true, а в FD говорит false и ломается)

Еще раз спасибо


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

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