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 类。因为我在我的 Main 类中有 function: 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 回答