您好我画了一个三角形,现在我想知道如何添加一个监听器。
var dn = new cc.DrawNode();
this.addChild(dn);
var w=200;
var h=500;
var star = [
cc.p(w,h), cc.p(w, h-200), cc.p(w*2, h-100 )
];
dn.drawPoly(star, cc.color(255,255,255,128), 1, cc.color(255,255,255,128) );
我试过这个,但这不起作用。
cc.eventManager.addListener({
event: cc.EventListener.MOUSE,
onMouseMove: function(event){
var str = "MousePosition X: " + event.getLocationX() + " Y:" + event.getLocationY();
// do something...
},
onMouseUp: function(event){
var str = "Mouse Up detected, Key: " + event.getButton();
// do something...
},
onMouseDown: function(event){
var str = "Mouse Down detected, Key: " + event.getButton();
// do something...
},
onMouseScroll: function(event){
var str = "Mouse Scroll detected, X: " + event.getLocationX() + " Y:" + event.getLocationY();
// do something...
}
},dn);
当我点击时,它不仅仅是在我点击三角形时发生的。
答案 0 :(得分:0)
使用cc.EventListener.TOUCH_ONE_BY_ONE
和回调是onTouchBegan(),onTouchEnded(),onTouchCancelled(),onTouchMoved()
答案 1 :(得分:0)
这就是所有事件的实际工作方式。
您需要在每个事件函数中添加一个检查,以查看触摸的坐标是否在对象内,如下所示:
onTouchesEnded: function (touches, event) {
var touch = touches[0];
if(cc.rectContainsPoint(event.getCurrentTarget().getBoundingBox(), touch.getLocation())){
console.log("event within object!");
}
}