Sprite node 添加点点击事件
function isTouchMe(target, touch, event, rect) {
var locationInNode = target.convertToNodeSpace(touch.getLocation());
var s = target.getContentSize();
var rect = rect || cc.rect(0, 0, s.width, s.height);
if (cc.rectContainsPoint(rect, locationInNode)) {
return true;
}
return false;
}
function setOnTouchListener(node, cb) {
if (!node.getUserData()) {
node.setUserData({});
}
var userData = node.getUserData();
if (userData.listener)
cc.eventManager.removeListener(userData.listener)
userData.listener = cc.EventListener.create({
event: cc.EventListener.TOUCH_ONE_BY_ONE,
swallowTouches: true,
onTouchBegan: function(touch, event) {
if (isTouchMe(node, touch, event)) {
return true;
}
return false;
},
onTouchMoved: function(touch, event) {
},
onTouchEnded: function(touch, event) {
if (cb)
cb();
},
onTouchCancelled: function (touch, event) {
}
})
cc.eventManager.addListener(userData.listener, node)
}