0

ゲームのメニューを作成する方法を理解するのに苦労しています。私が欲しいのは、ゲームの最初の起動時に、クリックするとゲームが開始される再生ボタンがあることだけです。

今私は MainMenu クラスを持っています:

package Classes 
{
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import Main;

/**
 * Main Menu
 * @author Craig Jackson
 */

public class MainMenu extends Sprite
{

    public function MainMenu() 
    {
        var playButton:Sprite = new Sprite();
        playButton.graphics.beginFill(0x666666);
        playButton.graphics.drawRect(300, 300, 100, 100);
        playButton.graphics.endFill();

        addChild(playButton);

        playButton.addEventListener(MouseEvent.CLICK, clickedPlayButton);
    }

    public function  clickedPlayButton():void 
    {
        // Not sure what to do here
    }

}

}

Main クラスで、MainMenu クラスのインスタンスを作成し、それをステージに追加します。これはうまくいきます。私の問題は、 MainMenu クラスで Main クラスを参照することにあります。メイン クラスに関数 playGame があり、ゲームを開始するために必要なすべてのコードが含まれているためです。その関数を MainMenu クラスから呼び出す方法や、Main クラスでトリガーする方法がわかりません。

イベントをディスパッチする必要があると思いますが、イベントのディスパッチがどのように機能するかを理解できないようです。

私の場合、イベントのディスパッチがどのように機能するか、または他のアイデアを知っている人はいますか?

4

2 に答える 2

1

を作成するだけで、簡単なカスタム イベントを作成できますnew Event()

public function clickedPlayButton(e:MouseEvent):void 
{
    dispatchEvent(new Event("PLAY_CLICKED"));
}

次に、Main.as次のようにそのイベントをリッスンできます。

menu.addEventListener("PLAY_CLICKED", playClicked);
于 2013-03-16T15:57:40.960 に答える
0

playClicked 関数でこのようなことを行います。

removeChild(playButton);
gameScreen = new GameScreen(); //Assuming you have a movieclip called GameScreen which holds your gamescreen
addChild(gameScreen);

すべてのゲーム グラフィックスとインターフェイスを GameScreen ムービークリップに追加します。

于 2013-03-16T17:02:45.430 に答える