因此,我正在使用starling框架来开发手机游戏,并且我希望当我按下手机上的“主页” /“返回”按钮时游戏能够暂停,并且当然要在返回游戏时继续运行。我做了一些研究,并尝试了以下方法:
this.addEventListener(FlashEvent.DEACTIVATE, stopGame);
this.addEventListener(FlashEvent.ACTIVATE, continueGame);
private function continueGame(event:FlashEvent):void
{
...
}
private function stopGame(event:FlashEvent):void
{
...
}
我必须添加一个名为FlashEvent的新类,该类扩展了flash.events.Event,因为我在同一类中使用了Starling Event和flash Event,并且当我使用flash.events.Event时出现此错误:
Error: Access of undefined property flash
与starling.events.Event相同。
所以我使用了上面的代码并在手机中对其进行了尝试,但是当我回击/回家时,游戏继续进行,音乐不断播放。
我的问题是:在空中移动应用中分配激活/停用事件的正确方法是什么?
答案 0 :(得分:0)
在主要的启动类中使用。 (请注意,在此示例中,“ app:Main”是我称为Starling start方法的类。
请注意,您应该使用以下方法确定事件类别: starling.events.Event.XXX flash.events.Event.XXX
_mStarling.addEventListener(starling.events.Event.ROOT_CREATED,
function onRootCreated(event:Object, app:Main):void
{
_mStarling.removeEventListener(starling.events.Event.ROOT_CREATED, onRootCreated);
app.start(assets);
_mStarling.start();
NativeApplication.nativeApplication.addEventListener(
flash.events.Event.ACTIVATE, function (e:*):void {
_mStarling.start();
try {
// optionally call some other methods
} catch(e:Error) {
}
});
NativeApplication.nativeApplication.addEventListener(
flash.events.Event.DEACTIVATE, function (e:*):void {
try{
// optionally call some other methods before stopping
} catch(e:Error) {
}
_mStarling.stop();
});
});
答案 1 :(得分:0)
我的代码
public function Main()
{
stage.addEventListener(flash.events.Event.DEACTIVATE, onDeactivate);
stage.addEventListener(flash.events.Event.ACTIVATE, onActivate);
}
然后您设置了一个暂停的布尔值,并在游戏循环的顶部进行检查:
if ( paused ) return;
如果您有动画,则使用一个杂耍杂耍者,并且如果您没有在杂耍杂耍者上调用AdvanceTime,则会暂停。