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

简介:

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

-(void)touchBegan:(CCTouch *)touch withEvent:(CCTouchEvent *)event{
    if ([self isTalking]) {
        [_chatBox advanceTextOrHide];
        return;
    }
    //其他代码

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

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

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

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

相关文章
|
SQL Oracle 关系型数据库
使用JSqlParser 解析sql
使用JSqlParser 解析sql
3068 0
|
监控 安全 网络安全
网络边界详解
网络边界详解
|
缓存 安全 Java
Spring框架中Bean是如何加载的?从底层源码入手,详细解读Bean的创建流程
从底层源码入手,通过代码示例,追踪AnnotationConfigApplicationContext加载配置类、启动Spring容器的整个流程,并对IOC、BeanDefinition、PostProcesser等相关概念进行解释
1365 25
Spring框架中Bean是如何加载的?从底层源码入手,详细解读Bean的创建流程
|
机器学习/深度学习 自然语言处理 搜索推荐
承上启下:基于全域漏斗分析的主搜深度统一粗排
两阶段排序(粗排-精排)一开始是因系统性能问题提出的排序框架,因此长期以来粗排的定位一直是精排的退化版本,业内的粗排的优化方向也是持续逼近精排。我们提出以全域成交的hitrate为目标的全新指标,重新审视了召回、粗排和精排的关系,指出了全新的优化方向
94088 3
|
监控 数据处理 API
提升DataFrame处理性能:高效数据操作的实战技巧
【5月更文挑战第19天】本文介绍了优化Pandas DataFrame性能的7个技巧:选择合适的数据类型、避免使用循环、使用查询优化、减少内存使用、利用并行处理、使用适当索引以及监控和分析性能。通过这些策略,可以提升数据处理效率,尤其适用于大规模数据集。例如,选择正确的数据类型、使用向量化操作和优化索引能有效提高DataFrame的操作速度。
|
Web App开发 资源调度 JavaScript
node.js详解
node.js详解
189 0
|
缓存 数据安全/隐私保护 虚拟化
windows端口被占用,无法通过netstat找到进程,占用的端口又不能修改,该怎么办?
项目运行时服务器8080端口被占用,常规`netstat`命令找不到占用进程。解决方法包括:1) 强制关机重启释放端口;2) 使用`netstat -anobq`或Windows 10的`Get-NetTCPConnection` PowerShell命令查找BOUND状态的进程;3) 调整Windows动态端口范围,避免冲突。注意,强制关机可能影响数据安全。
4066 2
|
TensorFlow 算法框架/工具 计算机视觉
ResNet实战:tensorflow2.0以上版本,使用ResNet50实现图像分类任务
ResNet实战:tensorflow2.0以上版本,使用ResNet50实现图像分类任务
1001 0
|
SQL 关系型数据库 MySQL
面试:25Wqps高吞吐写Mysql,100W数据4秒写完,如何实现?
面试:25Wqps高吞吐写Mysql,100W数据4秒写完,如何实现?
|
编解码 API 图形学