我很难弄清楚如何为我的游戏制作菜单。我想要的只是当游戏第一次启动时,有一个播放按钮,点击时启动游戏。
现在我有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类中触发它。
我想我需要发送一个事件,但我似乎无法理解事件调度是如何工作的。
是否有人知道如何在我的案例中调度事件或其他任何想法?
答案 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动画片段中。