cc.eventManager.addListener(listener, sprite);
添加到事件管理器,看样子似乎是将监听器与node关联起来,但实际来看,linstener里写的各种ontouch是需要判断node点边界的,触摸非node区域,监听器也会被触发。
那addLinstener还有什么意义?
cc.eventManager.addListener(listener, sprite);
添加到事件管理器,看样子似乎是将监听器与node关联起来,但实际来看,linstener里写的各种ontouch是需要判断node点边界的,触摸非node区域,监听器也会被触发。
那addLinstener还有什么意义?
它不管触摸的是不是你这个node,他只是负责把你添加进来的listerner再回发给你这个node,至于是不是点击的这个区域,要你自己在你触摸函数里面判断。
一直觉得不能自动判断点击区域挺2b的…
我也是这个问题,靠。。这个太恶心了,代码不是封闭的块吗,
http://www.cocoachina.com/bbs/read.php?tid=203232
这个是我问题,哎,addListener,this,都是啥名字和逻辑啊,,
我的多个精灵在移动,,点击时候,还要去判断各种状态和位置,而不是直接让事件命中我添加listener的node,这么做确实挺恶心,挺213的。。。
求下一个版本改吧,这个样设计不管出于什么考虑都不能让人接受。。。哎。。
接着吐槽,
我的原型是,有几行相同的自定义的sprite,而且在没有规律的移动,我要的是根据点击那个自定义sprite,来判断游戏状态,,,
那么现在有的事件机制下,我要先判断点击gamelayer上 Y 的位置(因为我一排按钮是一个小的sprite container),然后判断 sprite container X ,这样才能找到点击的到底是哪个,,纠结不。。靠。。。
感觉挺傻的, 这样监听移除removeListener() 传node的时候还有什么用
问一下楼上各位,addListener()是不是都是加在layer上, 所以removeListener()传node类型的话得是layer才行
额,这方面是为了架构的分离,毕竟CCSprite不是UI模块,UI模块里面都是可以自动判断范围的,想自动判断可以用UI模块的类,对应的类叫ImageView