0

古いフラッシュ ゲーム (AS2) のコレクションを Android 携帯に移植する AS3 ラッパーを作成しようとしています。次のコードを使用して、古い AS2 .swf を正常にロードして実行しました (CS5.5 の sim/run ウィンドウで ctrl+Enter)。

// This is the Loader instance that will load your SWF.
var swfLoader:Loader = new Loader();

// URLRequest points to your external SWF
var swfFile:URLRequest = new URLRequest("ha2.swf");

//create the container Movie Clip to load swf
var container:MovieClip= new MovieClip();

// Assign an event listener so that Flash informs you when the SWF has been loaded.

swfLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, swfLoadedHandler);

function swfLoadedHandler(e:Event):void {
    trace("swf loaded");
//(e.target.content).stop();//returns null reference for stop function

}

swfLoader.load(swfFile);

//just add the loaded swf to container
container.addChild(swfLoader);
//add container to the stage and make it visible

addChild(container);

これは PC で正常に動作し、必要に応じて swf をロードしますが、Android に公開すると、sim のようにスクリプトに従うのではなく、ループ内で AS2 アプリケーションのフレームを超高速でスキップします。

何か案は?はい、これらのゲームは AS3 に再コーディングすればより速く実行できることはわかっていますが、ゲームがたくさんあるので、元のゲームを保存して、シェルをより動的な (ただし効率は低くなりますが) ソリューションにしたいと考えています。

ありがとう。

4

1 に答える 1

3

Actionscript 2 は AIR ではサポートされていません。AIR デバイス シミュレーターでアプリを実行することは、実際のデバイスでアプリを実行することと同じではありません。iOS の AIR アプリで AS3 swf を読み込もうとして、同様のことをしました。エミュレーターでは実行できますが、実際の iOS デバイスではサポートされていないという警告が表示されます。
ムービーにスクリプトが存在しないかのように、すべてのフレームがアニメーション化されています (AIR プレーヤーは明らかにすべての ActionScript コードを無視しているため)。
ゲームを AS3 に再コーディングすることが Android の唯一の解決策です。iOS もサポートしたい場合は、それらすべてを 1 つのアプリにコンパイルするしかありません。彼ら。

于 2012-05-20T18:39:41.773 に答える