Hello Everybody,
The following script (attached to a layout) works in the browser but not in the simulator, does someone have an explanation?
By the way, I read this topic on the forum, ([BUG] Touch events on mobile devices do not get sent, works on browsers though ) , could it be the same kind of bug (I havent yet tested my script on mobile devices) ?
cc.Class({
extends: cc.Component,
properties: {
carreBleu: {default: null, type: cc.Node,},
carreJaune: {default: null,type: cc.Node,},
carreRouge: {default: null, type: cc.Node,},
carreOrange: {default: null,type: cc.Node,},
},
// use this for initialization
onLoad: function () {
var listener1 = cc.EventListener.create({
event: cc.EventListener.TOUCH_ONE_BY_ONE,
swallowTouches: true,
onTouchBegan: function (touch, event) {
var target = event.getCurrentTarget();
var locationInNode = target.convertToNodeSpace(touch.getLocation());
var s = target.getContentSize();
var rect = cc.rect(0, 0, s.width, s.height);
cc.log(s.width);
if (cc.rectContainsPoint(rect, locationInNode)) {
target.opacity = 110;
return true;
}
return false;
},
onTouchMoved: function (touch, event) {
var target = event.getCurrentTarget();
var delta = touch.getDelta();
target.x += delta.x;
target.y += delta.y;
},
onTouchEnded: function (touch, event) {
var target = event.getCurrentTarget();
if(target.name="carreBleu"){
target.opacity=10;}
}
});
cc.eventManager.addListener(listener1, this.carreBleu);
cc.eventManager.addListener(listener1.clone(), this.carreJaune);
cc.eventManager.addListener(listener1.clone(), this.carreRouge);
cc.eventManager.addListener(listener1.clone(), this.carreOrange);
},
});