我在游戏结束时出现了“游戏结束”文本,并将 addeventlistener 添加到 self.stage on touch。当它被触摸时,它应该执行加载游戏第一个屏幕的事件函数。但是,在第一个屏幕上,我在屏幕中间单击以播放具有自己的触摸事件的文本。
在模拟器中,如果我在游戏结束屏幕上单击屏幕中间,它还会自动记录点击播放事件并开始游戏。
- 我不认为点击播放的事件处理程序会持续存在,因为我在游戏开始时使用 [self removeAllChildren]。另外,我在玩游戏期间通过单击同一区域进行了测试,并且正确地没有点击播放的触摸事件记录。
编辑:
我为此做了一个解决方法,但不确定这是否是最佳解决方案:
我使用 NSTimer 在一段时间后启动了 onevent touch
[NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(attachEventToStart:) userInfo:startTextField repeats:NO];
然后在 attachEventToStart 中:
-(void)attachEventToStart:(NSTimer *)theTimer
{
SPTextField *startTextField = [theTimer userInfo];
[startTextField addEventListener:@selector(gameStartOnTouch:) atObject:self forType:SP_EVENT_TYPE_TOUCH];
}
这行得通,如果有人有更好的解决方案,那就太好了