请教一个问题哦!
var HelloWorldLayer = cc.Layer.extend({
ctor:function () {
this._super();
var layerColor = new cc.LayerColor(cc.color(255,255,255));
this.addChild(layerColor, 0,0);
var size = cc.director.getWinSize();
var plane2 = new cc.Sprite(res.plane);
plane2.x = size.width/2+300;
plane2.y = size.height/2;
this.addChild(plane2,1,ActionTypes.PLANE2_TAG);
return true;
},
onEnter:function(){
this._super();
var plane2_spt = this.getChildByTag(ActionTypes.PLANE2_TAG);
if(cc.rectContainsPoint(rect, pos)) {
var listener2 = cc.EventListener.create(
{
event:cc.EventListener.MOUSE,
onMouseDown:function(event){
var tgt = event.getCurrentTarget();//取得鼠标得到的当前对象
var pos = event.getLocation(); //取得鼠标的位置
var s = tgt.getContentSize(); //取得鼠标当前对象的大小
var rect = cc.rect(tgt.x,tgt.y,s.width, s.height);//获取飞机的区域范围
//关键部分,如果鼠标pos在rect范围内,则为点击到这个物体,触发alert函数
if(cc.rectContainsPoint(rect, pos)) {
alert("右边的飞机:"+plane2_spt.x);
}
}
}
);
cc.eventManager.addListener(listener2,plane2_spt);//plane2_spt飞机对象
}
});
var HelloWorldScene = cc.Scene.extend({
ctor:function () {
this._super();
var layer = new HelloWorldLayer();
this.addChild(layer);
}
});
附上代码,舞台上有一个精灵 plane2,宽度是259,高度215, 我要的目的是鼠标点击这个精灵触发 alert 事件,可是,这个代码运行时候,没点中飞机的部分也会触发,也就是有一大段偏差距离,请问这是怎么回事呢?