2011-03-31 6 views
0

私はactionscript 3をフラッシュして学習しようとしています。私は、 "ゲームを開始"オプションを持つシンプルなメニューを作っている。使用が「ゲーム開始」を示すとき、私はメニューを隠し、ゲームが始まります。今私が "終了"してメニュー画面に行きたい場合は、どうすればいいですか?ユーザーが今再生したゲームを消去/停止するにはどうすればよいですか?この問題について助けてくれてありがとう^^。アンロードコンテンツ - メインメニューactionscript 3

答えて

0

タイムラインでコーディングする場合は、ゲーム(グラフィック、コードなど)をメインタイムラインではなく独自のムービークリップに配置するのが最も簡単な方法です。その後、そのMovieClipが存在しないフレームにジャンプするか、コード内でremoveChildを使用して、ゲームが完了したらラッパーMovieClipをステージから削除できます。

クラスファイルを使用している場合、コンセプトは同じです。ゲームを自分のクリップの中に入れます。この場合、ゲームはSprite:class Game extends Spriteになるため、自然に独自のクリップでラップされます。ゲームを使用して行われたときに、あなただけの段階から、あなたのゲームのインスタンスを削除することができ、同様に

var game:Game = new Game(); 
addChild(game); 

:しかし、その代わりにDocumentクラスとしてゲームを使用するには、次のようなコードを使用してステージに作成し、それを追加したいですremoveChild(game);

これは、ゲームが終了したときにゲームの表示を削除します。 最も重要な部分はですが、ENTER_FRAME,KEY_DOWNなどゲームが作成した可能性のある他のリスナーを削除する必要があります。ステージからゲームを取り除いても、これらのENTER_FRAMEハンドラーは(おそらく無期限に)実行され続けます。これは、ゲームを停止したい場合でも実行し続けるため、エラーやパフォーマンスの問題を引き起こすことがよくあります。したがって、ゲームが終了したら、まずremoveEventListenerを使用してこれらのイベントリスナーを削除します。ゲームをできるだけ限定的なリスナーに限定することもできるので、このステップは簡単です。ステージからゲームクリップを削除することは安全です。