在AS3中制作游戏菜单

时间:2013-03-16 15:03:51

标签: actionscript-3

我很难弄清楚如何为我的游戏制作菜单。我想要的只是当游戏第一次启动时,有一个播放按钮,点击时启动游戏。

现在我有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类中使用playGame来启动游戏所需的所有代码。我无法解决如何从我的MainMenu类调用该函数或使其在我的Main类中触发它。

我想我需要发送一个事件,但我似乎无法理解事件调度是如何工作的。

是否有人知道如何在我的案例中调度事件或其他任何想法?

2 个答案:

答案 0 :(得分:1)

您只需制作new Event()

即可创建简单的自定义事件
public function clickedPlayButton(e:MouseEvent):void 
{
    dispatchEvent(new Event("PLAY_CLICKED"));
}

然后在Main.as你可以像这样听取这个事件:

menu.addEventListener("PLAY_CLICKED", playClicked);

答案 1 :(得分:0)

在你的playClicked功能中执行类似的操作。

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

将所有游戏图形和界面添加到GameScreen动画片段中。