Objc中触摸处理阻塞时消息派送的问题
2015-12-16 07:39
204 查看
在游戏场景中添加了touchBegan的处理:
如果玩家正在和NPC对话,则继续交谈.一切正常.
但是如果advanceTextOrHide被阻塞一段时间再返回的话,下一次点击屏幕却无法进入touchBegan回调的处理中.只有第二次点击屏幕才会进入.所以玩家必须多点击一次屏幕,虽然只是一点小瑕疵,但也是不能忍受的 ;[
问题是为什么第一次点击后没有激活回调?代码流跑道哪里去了?答案是代码跑到touchEnded里面去了!
我的推测是当touchBegan被阻塞一段时间后,与之对应的touchEnded不再被调用.而是等到下一次点击屏幕时才被”补上”.等于是想把它丢掉又不能丢,得找个机会把它补上才行.
-(void)touchBegan:(CCTouch *)touch withEvent:(CCTouchEvent *)event{ if ([self isTalking]) { [_chatBox advanceTextOrHide]; return; } //其他代码
如果玩家正在和NPC对话,则继续交谈.一切正常.
但是如果advanceTextOrHide被阻塞一段时间再返回的话,下一次点击屏幕却无法进入touchBegan回调的处理中.只有第二次点击屏幕才会进入.所以玩家必须多点击一次屏幕,虽然只是一点小瑕疵,但也是不能忍受的 ;[
问题是为什么第一次点击后没有激活回调?代码流跑道哪里去了?答案是代码跑到touchEnded里面去了!
我的推测是当touchBegan被阻塞一段时间后,与之对应的touchEnded不再被调用.而是等到下一次点击屏幕时才被”补上”.等于是想把它丢掉又不能丢,得找个机会把它补上才行.
相关文章推荐
- Oracle阻塞(blockingblocked)实例详解
- 科学知识:同步、异步、阻塞和非阻塞区别
- SQL2008中SQL应用之-阻塞(Blocking)应用分析
- Oracle 阻塞(blocking blocked)介绍和实例演示
- 利用sys.sysprocesses检查SqlServer的阻塞和死锁
- node.js回调函数之阻塞调用与非阻塞调用
- Jquery ajax 同步阻塞引起的UI线程阻塞问题
- js异步加载的三种解决方案
- SQL Server误区30日谈 第2天 DBCC CHECKDB会导致阻塞
- Oracle RAC环境下的阻塞(blocking blocked)介绍和实例演示
- Java基于Runtime调用外部程序出现阻塞的解决方法
- nodejs中实现阻塞实例
- PHP session文件独占锁引起阻塞问题解决方法
- java执行bat命令碰到的阻塞问题的解决方法
- 【集群】WebLogic线程阻塞的问题(图)
- 这个季节的忧伤,点到为止
- 触摸事件的处理
- centos禁用触摸板总结
- Objective-C消息机制的原理
- UIEvent学习