[]分享:为List组件下Item(Box)下的Button(或其他组件)进行监听!
以下是JS的写法,AS/TS思路一样,请根据自己的需求进行修改即可!
var Loader = laya.net.Loader;
var Handler = laya.utils.Handler;
var Event = laya.events.Event;
// 创建TestPageUI的子类
function TestUI()
{
TestUI.super(this);
//list赋值,先获得一个数据源数组
var arr = ;
for (var i = 0; i < 100; i++) {
arr.push({label: "item " + i, clip: i % 9,btn:"btn"+i});
}
//给list赋值更改list的显示
this.list.array = arr;
//给list添加渲染函数
this.list.renderHandler = new Handler(this, onListRender);
}
//通过渲染函数为Btn添加Click
function onListRender(item, index)
{
var btn=item.getChildByName('btn');
btn.on(Event.CLICK,this,onClickBtn,[index]);
}
Laya.class(TestUI, "TestUI", TestPageUI);
//按钮Click回调
function onClickBtn(index)
{
alert("你点击了第:"+index+"个btn");
}
//初始化引擎
Laya.init(600, 400);
Laya.stage.bgColor='#EEFFCC';
Laya.loader.load("res/atlas/comp.json", Handler.create(this, onAssetLoaded), null, Loader.ATLAS);
//添加UI界面
function onAssetLoaded()
{
Laya.stage.addChild(new TestUI());
}
要回复问题请先登录
8 个回复
Monica - 知识达人
赞同来自:
gmajrtfp
赞同来自:
btn.off(Event.CLICK,this,onClickBtn,[index]);不然会重复监听click事件
gls_laybox
赞同来自:
qq97659689
赞同来自:
Laya_XS
赞同来自:
Laya_XS
赞同来自:
zqn951201
赞同来自:
a5703929
赞同来自: