cc.Node.事件-创新互联

触摸事件

成都创新互联公司于2013年开始,先为白城等服务建站,白城等地企业,进行企业商务咨询服务。为白城企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

1.触摸事件的类型:START触摸启动,MOVED移动,ENDED弹起来,CANCEL取消;

ENDED和CANCEL区别是ENDED物体内弹起来,CANCEL是在物体外范围弹起。

2.监听触摸事件,node.on(类型,callback,target(回调函数的this),[useCapture])

3.触摸事件,node.on(类型,callback,target(回调函数的this),[useCapture])

      //(1)监听触摸事件 向引擎底层注册回调函数      //当有触摸事件发生等时候,调这个方法      //cc.Node.EventType.TOUCH_START 触摸开始           //(2)回调函数等格式 function(t) t对象是tt.Touch的对象      //这个对象包含的信息有[触摸信息,事件信息];           //(3)target 目标谁来调等callback 哪个对象来调用等这个callback      //那就是哪个对象在callback来绑定实例,target就是里面this对象           //最后一个参数默认即可      onLoad: function() {         this.node.on(cc.Node.EventType.TOUCH_START,             function(t){console.log("cc.Node.EventType.TOUCH_START ")},this)         this.node.on(cc.Node.EventType.TOUCH_MOVE,             function(t){console.log("cc.Node.EventType.TOUCH_MOVE ")},this)                      this.node.on(cc.Node.EventType.TOUCH_END,             function(t){console.log("cc.Node.EventType.TOUCH_END ")},this)                      this.node.on(cc.Node.EventType.TOUCH_CANCEL,             function(t){console.log("cc.Node.EventType.TOUCH_CANCEL ")},this)      },

4.如果这时候 不想监听了 就可以通过off来关闭, 但是你的,

callback不要是匿名函数,要用一个函数对象来保存

    on_touch_moved:function(t){         console.log("cc.Node.EventType.TOUCH_END ");     },

5.关闭注册

    this.node.off(cc.Node.EventType.TOUCH_END,         this.on_touch_moved ,this)


6.移除目标上的所有事件

targetoff(target)

7.cc.Touch

getLocation 获取当前触点位置 做下角(0,0)为起始点

getDelta 获取触点距离上一次事件移动的距离对象,对象包含 x 和 y 属性

8.cc.Touch 同时包含 cc.Event事件

父节点移动那么所有的子节点都移动,那也就是("父节点是包含了

整个子节点的一个整体"),那这个整体其中一个成员收到来一个事件,

这时候这事件会向上传递,就是说你的一个子节点有一个事件发生后,

父节点是可以收到等,这个就叫做事件等向上传递,事件冒泡。

如果子节点觉得这是一个私有事件,不想向上传递,想挡住这个事件,

stopPropagationImmediate//立即停止事件传递

stopPropagation停止传递当前事件。

9.按键事件

按键分类:按下EventType.KEY_DOWN,弹起KEY_UP

注册键盘事件

注意systemEvent是小写开头,

大写是类,

小写是全局实例 他的说明是:系统事件单例,方便全局使用.

     onLoad: function() {         //按键被按下         cc.systemEvent.on(cc.SystemEvent.EventType.KEY_DOWN,             this.on_key_down,this);         cc.systemEvent.on(cc.SystemEvent.EventType.KEY_UP,             this.on_key_up,this);      },     on_key_down: function(event){         //获取按键 每个按键对应一个按键码         //event对象带有keyCode 按键码         //按键码在cc.KEY里面定义的         console.log("按下");         switch(event.KeyCode){             case cc.KEY.space:                 console.log("空格按下");             break;         }     },     on_key_up: function(event){          switch(event.KeyCode){             case cc.KEY.space:                 console.log("空格弹起");             break;         }     },

10.自定义事件

自己定义的事件,比如我要向你发送一个通知.

监听:this.node.on("自定义事件名",function,target,useCapture);

触发(派发事件):emit("事件名",[detail]) 只有自己能收到

冒泡派送:dispatchEvent(new cc.Event.EventCustom("name",是否冒泡传递))

onLoad:function(){         //接收者          //事件类型是自定义字符串等 为事件名字         //回调函数 参数Event.EventCustom的实例         this.node.on("pkg_event",function(e){             console.log("pkg_event");             //输出自定义事件传过来等 自定义数据             console.log(e.detail.name);         },this);         //end                  //发送者  直接触发事件         //这种方法不会对事件传播到任何其他对象         //也就是说这个事件只能传给自己         //detail Object 事件的详细数据         //可以传递自定义数据 比如说传一个表         this.node.emit("pkg_event",{name:"下面"});         //end     },

如果我们要把这个事件向上发送

        //如果这个事件要向上传递,也就是不只是传给自己         ////true向上传递 false不向上传递         var ea = new cc.Event.EventCustom("pkg_event",true);         //自定义数据         ea.detail = {name:"小王"};         //指定这个事件向上传递          this.node.dispatchEvent(ea);                  //end

父节点接收事件 脚本

     onLoad :function() {         this.node.on("pkg_event",function(e){             console.log("父节点收到冒泡");             console.log(e.detail.name);         },this);      },

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


新闻名称:cc.Node.事件-创新互联
文章出自:http://scyanting.com/article/hjpgp.html