[]hitTestPrior点击穿透

label在box容器中, box和label都有点击事件, 点击label时, 如何只触发label的点击, 阻止穿透到box中
已邀请:

cuixueying

赞同来自: lllzzz6311

package  {

import laya.display.Sprite;
import laya.events.Event;
import laya.webgl.WebGL;

public class PanelElastic {

public function PanelElastic()
{
Laya.init(800,600,WebGL);
Laya.stage.bgColor="#EEFFCC";
var sp:Sprite=new Sprite();
sp.graphics.drawRect(0,0,300,300,"#FFFF00");
sp.size(100,100);
sp.on(Event.CLICK,this,onClickSp);
Laya.stage.addChild(sp);
var spchild:Sprite=new Sprite();
spchild.graphics.drawRect(0,0,200,200,"#FF0000");
spchild.size(200,200);
spchild.on(Event.CLICK,this,onClickSpChild);
sp.addChild(spchild);
}

private function onClickSpChild(e:Event):void
{
e.stopPropagation();
trace("child");
}

private function onClickSp(e:Event):void
{
trace("sp");
}
}
}

lllzzz6311

赞同来自:

QQ图片20170918113152.png

怎样才能只触发box容器中的label的点击事件而不触发box的点击事件   设置hitTestPrior好像没什么用
 
测试代码如下:
//hitTestPrior
window[`hitTestPrior`] = () => {
let box1 = new Laya.Box();
box1.width = box1.height = 500;
let sp = new Laya.Sprite();
sp.graphics.drawRect(0, 0, box1.width, box1.height, `#999900`);
box1.addChild(sp);
box1.clickHandle = () => {
lizheng.log(`点击了box1`);
}
box1.hitTestPrior = false;
Laya.stage.addChild(box1);
let lab = new Laya.Label();
lab.text = "666666666666666666";
lab.fontSize = 50;
lab.clickHandle = () => {
lizheng.log(`点击了lab`);
}
// Laya.stage.addChild(lab)
box1.addChild(lab);
}

要回复问题请先

商务合作
商务合作