天天看点

Objc中触摸处理阻塞时消息派送的问题

在游戏场景中添加了touchbegan的处理:

如果玩家正在和npc对话,则继续交谈.一切正常.

但是如果advancetextorhide被阻塞一段时间再返回的话,下一次点击屏幕却无法进入touchbegan回调的处理中.只有第二次点击屏幕才会进入.所以玩家必须多点击一次屏幕,虽然只是一点小瑕疵,但也是不能忍受的 ;[

问题是为什么第一次点击后没有激活回调?代码流跑道哪里去了?答案是代码跑到touchended里面去了!

我的推测是当touchbegan被阻塞一段时间后,与之对应的touchended不再被调用.而是等到下一次点击屏幕时才被”补上”.等于是想把它丢掉又不能丢,得找个机会把它补上才行.