starling1.2 游戏思路<2>
第四步: 游戏界面切换
我们假设我们已经把四个场景都写好了
1.InGameScreen:InGame;
2.WelcomeScreen:Welcome;
3.AboutScreen:About;
4.OverScreen:Over;
那我们怎样在这之间切换?
-----自定义事件
events下 创建一个自定义事件 NavEvent.as用于发送事件
NavEvent.as类
1 package events
2 {
3 import starling.events.Event;
4
5 public class NavEvent extends Event
6 {
7 public static const CHANGESCREENS:String = "changeScreens";
8
9 public var params:Object;
10
11 public function NavEvent(type:String, bubbles:Boolean = false, _params:Object = null)
12 {
13 super(type, bubbles, _params);
14
15 this.params = _params;
16
17 }
18 }
19 }
然后在Game类中添加侦听
this.addEventListener(NavEvent.CHANGESCREENS, onChange);
1 private function onChange(event:NavEvent):void
2 {
3 switch (event.params.id)
4 {
5 case "start":
6 InGameScreen.init();
7 WelcomeScreen.hide();
8 AboutScreen.hide();
9 OverScreen.hide();
10 break;
11 case "about":
12 InGameScreen.hide();
13 WelcomeScreen.hide();
14 AboutScreen.init();
15 OverScreen.hide();
16 break;
17 case "back":
18 InGameScreen.hide();
19 WelcomeScreen.init();
20 AboutScreen.hide();
21 OverScreen.hide();
22 break;
23 case "over":
24 InGameScreen = new InGame();
25 this.addChild(InGameScreen);
26 InGameScreen.hide();
27 WelcomeScreen.hide();
28 AboutScreen.hide();
29 OverScreen.init();
30 break;
31 case "ingameback":
32 AboutScreen.hide();
33 WelcomeScreen.init();
34 OverScreen.hide();
35 InGameScreen = new InGame();
36 this.addChild(InGameScreen);
37 InGameScreen.hide();
38 break;
39 }
40 }
我们可以看到 在这些不同界面的类中会有init() hide(),其实就是隐藏和显示当前界面
当我需要的时候通过发送事件 来执行我想要的界面
比如 当我在欢迎界面的时候单机 start开始 ,那我就发送 "start" 过去 来切换场景。
this.dispatchEvent(new NavEvent(NavEvent.CHANGESCREENS, true, {id:"start"}));
基本是这样啦。然后游戏的内容就靠策划了~~

浙公网安备 33010602011771号