1

ユーザーが 2 つの異なる .swf ゲームを交換できるようにする単純な Flex Mobile プロジェクトがあります。次のコードで .swf をロードします。

private function loadFile(f:String):void{   
            var _urlRequest:URLRequest = new URLRequest(f);
            var _loader:Loader = new Loader();
            var _lc:LoaderContext = new LoaderContext(false, ApplicationDomain.currentDomain, null);
            _loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onSWFLoaded);
            _loader.load(_urlRequest, _lc);
            txt.text="loading";
            // add loader to container
            grp.addChild(_loader);
        }
        private function onSWFLoaded(e:Event):void {
            // status text to show it loaded
            txt.text="loaded!";
        }

次に、ユーザーボタンをクリックすると、次のようになります。

 loadFile("file1.swf");

file1.swf はビルドにパッケージ化されています。iPod Touch の高速パッケージングでこれをデバッグで実行すると、すべてが魅力的に機能しますが、エクスポート リリース ビルドを実行すると、ステータス テキストにはまだ「ロード済み」と表示されますが、swf は非常に奇妙にロードされます。正常に動作しません。

問題なく高速パッケージングで動作するため、子 swfs のコードが失敗する可能性があるリリース ビルドと高速ビルドの違いは何ですか?

どんなアイデアでも大歓迎です。

ありがとう。

4

1 に答える 1

1

ここからのコメントに基づいて問題を解決しました: http://forums.adobe.com/message/5398137

var file:File = File.applicationDirectory.resolvePath("file1.swf"); の使用 Flex Compilerオプション「swf-version = 19」を追加すると、問題が修正されました。2 つの変更のうちどちらが修正されたのかはわかりませんが、現在はすべて機能しています。

于 2013-09-10T16:37:32.587 に答える