Cocos2d-x html5笔记 - 点击事件的处理
2013-05-29 11:07
253 查看
按钮创建:
var item1 = cc.MenuItemImage.create("a.png","a_selected.png",function(){ cc.log("a is click")},this);var item2 = cc.MenuItemImage.create("b.png","b_selected.png",function(){ cc.log("b is click")},this);
//不要用console.log,除非你不想用js binding
//创建好的要放到Menu中,否则不会被注册到事件代理中var menu = cc.Menu.create(item1);//还可以这样menu.addChild(item2,1);//最后把菜单放到当前场景中this.addChild(menu,2);
事件屏蔽:所有菜单创建时,优先级是:cc.MENU_HANDLER_PRIORITY当场景中出现需要屏蔽的菜单按钮时,你可以将可以点击的菜单置于更优先的位置:this._m_pMenu.setTouchPriority(cc.MENU_HANDLER_PRIORITY - 2);
然后通过这样把此层一下的事件全部屏蔽掉:cc.registerTargettedDelegate(cc.MENU_HANDLER_PRIORITY - 1, true, this);
当然,在你离开的时候需要:cc.unregisterTouchDelegate(this);
原理:Coco采用html中的事件冒泡机制,但冒泡的顺序可以自己设定,Priority越小代表层次越高,Menu最小=128,比这个更小的就可以把Menu都更优先处理。
cc.registerTargettedDelegate:意为”有目标对象的事件代理”,区别于“标准事件代理”一旦调用,当前所有Touch事件会经过判定处理,可以传的三个参数:(priority, passabel, delegator)作用:当TouchPriority符合priority时,可以根据passable来选择该事件处理是否为冒泡阻塞机制,只处理delegator中的事件。
若onTouchBegan:return false 则屏蔽事件往下层传递,否则事件将会被传入下一层
var item1 = cc.MenuItemImage.create("a.png","a_selected.png",function(){ cc.log("a is click")},this);var item2 = cc.MenuItemImage.create("b.png","b_selected.png",function(){ cc.log("b is click")},this);
//不要用console.log,除非你不想用js binding
//创建好的要放到Menu中,否则不会被注册到事件代理中var menu = cc.Menu.create(item1);//还可以这样menu.addChild(item2,1);//最后把菜单放到当前场景中this.addChild(menu,2);
事件屏蔽:所有菜单创建时,优先级是:cc.MENU_HANDLER_PRIORITY当场景中出现需要屏蔽的菜单按钮时,你可以将可以点击的菜单置于更优先的位置:this._m_pMenu.setTouchPriority(cc.MENU_HANDLER_PRIORITY - 2);
然后通过这样把此层一下的事件全部屏蔽掉:cc.registerTargettedDelegate(cc.MENU_HANDLER_PRIORITY - 1, true, this);
当然,在你离开的时候需要:cc.unregisterTouchDelegate(this);
原理:Coco采用html中的事件冒泡机制,但冒泡的顺序可以自己设定,Priority越小代表层次越高,Menu最小=128,比这个更小的就可以把Menu都更优先处理。
cc.registerTargettedDelegate:意为”有目标对象的事件代理”,区别于“标准事件代理”一旦调用,当前所有Touch事件会经过判定处理,可以传的三个参数:(priority, passabel, delegator)作用:当TouchPriority符合priority时,可以根据passable来选择该事件处理是否为冒泡阻塞机制,只处理delegator中的事件。
若onTouchBegan:return false 则屏蔽事件往下层传递,否则事件将会被传入下一层
相关文章推荐
- 【Cocos2d-X开发学习笔记】第22期:事件处理机制之触屏事件
- cocos2d-x处理点击事件的机制
- cocos2d-x自定义可点击/可处理事件/可接受触屏消息的Sprite
- 【Cocos2d-X开发学习笔记】第23期:事件处理机制之按键事件
- Cocos2D-X2.2.3学习笔记9(处理重力感应事件,移植到Android加入两次返回退出游戏效果)
- 【Cocos2d-X开发学习笔记】第22期:事件处理机制之触屏事件
- 安卓开发笔记——高仿新浪微博文字处理(实现关键字高亮,自定义表情替换并加入点击事件实现)
- Android笔记2—处理点击事件的几种方法
- Cocos2D-X2.2.3学习笔记9(处理重力感应事件,移植到Android加入两次返回退出游戏效果)
- Cocos2d-X 学习笔记 22 CCLayer 界面Touch事件处理
- Cocos2D-X2.2.3学习笔记8(处理精灵单击、双击和三连击事件)
- Cocos2D-X2.2.3学习笔记8(处理精灵单击、双击和三连击事件)
- coco笔记:连续点击相应事件处理(使用协同)_ Java和C#
- 移动项目开发笔记(禁止一个按钮在服务器事件处理完成前连续点击按钮)
- Cocos2d-x学习笔记(九)-------->Touch事件处理机制
- Cocos2d-x学习笔记(六)—— 事件处理
- Androidx学习笔记(4)-- 事件处理的四种写法(点击事件为例)
- Cocos2d-x学习笔记(五)CCLayer分析及输入事件处理(触摸、重力传感器、按键)
- 【Cocos2d-X开发学习笔记】第24期:事件处理机制之加速度传感器事件
- 【麦可网】Cocos2d-X跨平台游戏开发学习笔记---第十五课:Cocos2D-X事件处理1-7