事件响应的优先级、stopProgapation禁止下层组件响应
来源:互联网 发布:优化相机 编辑:程序博客网 时间:2024/05/16 09:56
cocos2d-js没有完整的鼠标事件处理,这点比js/flash的要差一些,不过凑合着也可以用了。
一般界面编程,可以用显示列表的Node作为监听器的优先级,在上方的会比下方的高优先级。
而cocos2d-js没有stopImmediatePropagation,只有stopProgapation,一旦某个监听器中执行了stopProgapation,后续的监听器都不会被执行。这里并没有js/flash的冒泡概念。
如果在上层Node中stopProgapation,那么效果就有点像设置了swallowTouches:true,但会更灵活
例子:
界面上添加2个sprite,child1在下,child2在上。
如下的代码,child2的监听器优先级高,会首先执行,其中func2会先输出,因为按顺序执行,但由于stopProgapation,所以child1的监听器不会被执行。
if("touches" in cc.sys.capabilities){ cc.eventManager.addListener({event: cc.EventListener.TOUCH_ONE_BY_ONE, onTouchBegan: function(){ trace("func1"); return true; }}, this.child1); cc.eventManager.addListener({event: cc.EventListener.TOUCH_ONE_BY_ONE, onTouchBegan: function(touch,event){ trace("func2"); //按顺序执行,先func2,再func3 return true; }}, this.child2); cc.eventManager.addListener({event: cc.EventListener.TOUCH_ONE_BY_ONE, onTouchBegan: function(touch,event){ trace("func3"); event.stopPropagation(); return true; }}, this.child2); }else{ cc.eventManager.addListener({event: cc.EventListener.MOUSE, onMouseDown: function(){ trace("func1"); }}, this.child1); cc.eventManager.addListener({event: cc.EventListener.MOUSE, onMouseDown: function(event){ trace("func2"); //按顺序执行,先func2,再func3 }}, this.child2); cc.eventManager.addListener({event: cc.EventListener.MOUSE, onMouseDown: function(event){ trace("func3"); event.stopPropagation(); }}, this.child2); }
源引:http://www.cnblogs.com/kenkofox/p/3974998.html
0 0
- 事件响应的优先级、stopProgapation禁止下层组件响应
- android FrameLayout响应了下层view的点击事件
- android FrameLayout响应了下层view的点击事件
- 穿透图片响应下层image事件
- 手势响应事件优先级
- 禁止响应事件函数
- UIGestureRecognizerDelegate设置响应事件优先级
- jquery 禁止回车事件响应
- 防止touch事件穿层从而触发下层menu响应
- framelayout 两布局重叠,下层不响应点击事件
- BCB 动态创建组件的事件响应
- BCB 动态创建组件的事件响应
- 脚本的响应事件与组件访问
- cocos2d-x中解决点击事件上层响应,下层不响应
- Android中的WebView禁止响应点击事件的方法
- 禁止子视图响应父视图的点击事件
- Android中的WebView禁止响应点击事件的方法
- TableView模态弹窗,并屏蔽下层的按钮响应
- array_splice()函数
- 我的金工实习心得(二):铸工第一天
- LintCode-Copy Books
- Java(8-10)
- A1085. Perfect Sequence (25)
- 事件响应的优先级、stopProgapation禁止下层组件响应
- C语言-Struct
- To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
- JVM学习笔记(三)------内存管理和垃圾回收
- 交叉排序
- Android Drawable、Bitmap、byte[]之间的转换
- 确定天数 SDUT 2520
- HDu 1513 LCS
- JVM学习笔记(四)------内存调优