Cocos2d JS / Cocos Creator 将触摸监听器添加到特定节点
Cocos2d JS / Cocos Creator add touch listener to specific node
我想在触摸时拖动特定的精灵。我想知道我是否可以只为特定节点添加事件监听器,这样我就不必在为每个节点启动特定的拖动功能之前检查哪个节点被触摸了。当在特定节点之外触摸时,以下代码也会 "fire"。
this.directionDial = new cc.Node()
this.directionDial.graphics = this.directionDial.addComponent(cc.Graphics)
this.node.addChild(this.directionDial)
this.directionDial.graphics.lineWidth = 2;
this.directionDial.graphics.strokeColor = cc.Color.RED;
this.directionDial.graphics.circle(80, 0, 10);
this.directionDial.graphics.stroke();
var _this = this;
// Touch control
cc.eventManager.addListener({
event: cc.EventListener.TOUCH_ONE_BY_ONE,
swallowTouches: true,
onTouchBegan: function (touch, event) {
//do something
_this.forceDirection = 1;
_this.displayDirection()
return true;
}
}, this.directionDial);
是的,使用 Cocos Creator,您可以执行以下操作:
this.node.on(cc.Node.EventType.TOUCH_START, this.methodToBeCalled, this);
我想在触摸时拖动特定的精灵。我想知道我是否可以只为特定节点添加事件监听器,这样我就不必在为每个节点启动特定的拖动功能之前检查哪个节点被触摸了。当在特定节点之外触摸时,以下代码也会 "fire"。
this.directionDial = new cc.Node()
this.directionDial.graphics = this.directionDial.addComponent(cc.Graphics)
this.node.addChild(this.directionDial)
this.directionDial.graphics.lineWidth = 2;
this.directionDial.graphics.strokeColor = cc.Color.RED;
this.directionDial.graphics.circle(80, 0, 10);
this.directionDial.graphics.stroke();
var _this = this;
// Touch control
cc.eventManager.addListener({
event: cc.EventListener.TOUCH_ONE_BY_ONE,
swallowTouches: true,
onTouchBegan: function (touch, event) {
//do something
_this.forceDirection = 1;
_this.displayDirection()
return true;
}
}, this.directionDial);
是的,使用 Cocos Creator,您可以执行以下操作:
this.node.on(cc.Node.EventType.TOUCH_START, this.methodToBeCalled, this);