0
我遇到了一个奇怪的问题。我是一个主要的游戏类,它扩展了UIComponent并将所有游戏逻辑basecly粘合在一起 - 主循环。然后,我已经创建了main.mxml文件,它初始化了主要的游戏类,保持游戏屏幕状态(主菜单,游戏,游戏结束等等),并添加了一些ui控制 - flex很棒。但是当问题到达时我正在尝试在Game类中调度的Main.mxml中监听自定义事件。Flex 4 - 从UIComponent扩展自定义类中听到Main.mxml中的事件问题
**GameStateEvent.as**
public class GameStateEvent extends Event
{
public static const GAME_OVER:String = "gameOver";
public static const NEW_LEVEL:String = "newLevel";
public function GameStateEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false)
{
super(type, bubbles, cancelable);
}
override public function clone():Event
{
return new GameStateEvent(type, bubbles, cancelable);
}
}
Game.as
[Event(name="gameOver", type="custom.events.GameStateEvent")]
public class Game extends UIComponent
private function checkforEndGame():void
{
if(_gameOver == true)
{
dispatchEvent(new GameStateEvent(GameStateEvent.GAME_OVER)); //true
}
}
Main.mxml
3210我真的堆在这 - 的东西,看起来简单,但原因不明我什么都不似乎work.I尝试捕获,冒泡事件 - 没有,事件从未在Main.mxml中派发。
Everyhing看起来很适合我。从事件监听器备份。你确定这个活动被解雇吗? – JeffryHouser 2010-09-17 18:44:50
我与Flextras,这一切看起来不错,假设dispatchEvent真的被checkForEndGame调用。唯一我能想到的是:GameStateEvent是否在你的custom.events包中? – 2010-09-17 19:16:26
是的,事件被触发,因为dispatchEvent返回true,如果我在Game.as中的addEventListener监听器得到响应相同的事情,当我在Main.mxml中dispatchEvent,但由于未知原因,当我在Game.as中dispatchEvent并在Main.mxml监听器中监听从未被击中。 – Rudis 2010-09-18 06:37:33