[]sprite做的按钮点击无反应?

代码如下:
var dialog_mc:Sprite = new Sprite();
Laya.stage.addChild(dialog_mc);

var w:int = 110;
var h:int = 40;
var btn:Sprite = new Sprite();
btn.size(w, h);
btn.graphics.drawRect((stageWd - w) * 0.5, (stageHt - h) * 0.5-50, w, h, "#FF7F50");
btn.graphics.fillText("确 定", (stageWd) * 0.5 , (stageHt - h) * 0.5-43, "25px SimHei", "#FFFFFF", "center");
//dialog_mc.addChild(btn);
Laya.stage.addChild(btn);

btn.on(Event.CLICK, this, function(){
alert("点击");
});
点击btn并未弹出alert,我也设置了btn的size,这是为什么?
已邀请:

Monica - 知识达人

赞同来自:

Sprite的宽高默认是0,默认不接收鼠标事件。你给Sprite手动设置个宽高,再把mouseEnabled设置为true

Laya_XS

赞同来自:

你的问题有两个方法可以解决,第一个方法如下:
var w:int = 110;
var h:int = 40;
var btn:Sprite = new Sprite();
btn.size(w, h);
btn.graphics.drawRect((stageWd - w) * 0.5, (stageHt - h) * 0.5-50, w, h, "#FF7F50");
btn.graphics.fillText("确 定", (stageWd) * 0.5 , (stageHt - h) * 0.5-43, "25px SimHei", "#FFFFFF", "center");
Laya.stage.addChild(btn);
var hitArea:HitArea = new HitArea();
var graphics:Graphics = new Graphics();
graphics.drawRect((stageWd - w) * 0.5, (stageHt - h) * 0.5-50, w, h, "#FF7F50");
hitArea.hit = graphics;
btn.hitArea = hitArea;
第二种方法:
var w:int = 110;
var h:int = 40;
var btn:Sprite = new Sprite();
btn.size(w, h);
btn.graphics.drawRect(0,0, w, h, "#FF7F50");
btn.graphics.fillText("确 定", (stageWd) * 0.5 , (stageHt - h) * 0.5-43, "25px SimHei", "#FFFFFF", "center");
Laya.stage.addChild(btn);
btn.pos((stageWd - w) * 0.5, (stageHt - h) * 0.5-50);

ohkei - as3、as2、h5

赞同来自:

感谢感谢!!

lei159130

赞同来自:

研究了n久,原来默认宽高为0,终于解决了,但是每张按钮都去设置固定宽高,这就很尴尬了

要回复问题请先

商务合作
商务合作