Cocos2d JS / Cocos Creator добавляет сенсорный слушатель к определенному узлу
Я хочу перетащить определенный спрайт на ощупь. Интересно, могу ли я добавить прослушиватели событий только к определенному узлу, поэтому мне не нужно проверять, к какому узлу прикоснулись, прежде чем запускать функцию перетаскивания для каждого узла. Следующий код также "срабатывает" при касании за пределами определенного узла.
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);
1 ответ
Решение
Да, используя Cocos Creator, вы можете сделать что-то вроде:
this.node.on(cc.Node.EventType.TOUCH_START, this.methodToBeCalled, this);