代码如下:
/**
* 实例化MoreGameItem
*/
public SpawnMoreGameItem(data: MoreGameData[]) {
var self = this;
//遍历生成预制体并赋值
data.forEach(element => {//那个布局组件要研究一下
//加载预制体
// this.resSvc.LoadPrefabs(PathCfg.MOREGAMEITEM_PATH,this.spawnPos,makeObj);
loader.loadRes(PathCfg.MOREGAMEITEM_PATH, (err, prefab) => {
if (err) {
console.log("error while read" + "," + err);
return;
}
let curNode = instantiate(prefab);
//设置父对象
this.spawnPos.addChild(curNode);
//添加进预制体集合
//self.curDestoryMoreGameItem.push(curNode);
//设置它的名字
//curNode.name = "moreItem:" + element.id;
//console.log("curNode.name:"+curNode.name);
//获得组件
/**
* MoreGameItem组件
*/
let moreGameComp: MoreGameItem = curNode.getComponent(MoreGameItem);
console.log("获得组件:" + moreGameComp);
//设置Id
moreGameComp.Id = element.id;
console.log("设置id:" + moreGameComp.Id);
//加载图片并设置
//this.resSvc.LoadImage(element.imgIconUrl, moreGameComp.imgIcon);
loader.loadRes(element.imgIconUrl,(err:any,sp:SpriteFrame)=>{
if(err){
console.log("error while downing"+","+err);
}
moreGameComp.imgIcon.spriteFrame=sp;
});
//设置Des
moreGameComp.txtDes.string = element.txtDes;
//获取当前的Button组件
//let buttonComp: ButtonComponent = curNode.getComponent(ButtonComponent);
//动态添加监听
//curNode.on(Node.EventType.MOUSE_DOWN, this.ClickMoreGameItem, curNode,curNode);
//curNode.on(Node.EventType.MOUSE_DOWN, this.ClickMoreGameItem(curNode), this);
curNode.on(Node.EventType.MOUSE_DOWN, this.ClickMoreGameItem, curNode);
//curNode.on(Node.EventType.MOUSE_DOWN, this.ClickMoreGameItem, this);
/*curNode.on(Node.EventType.MOUSE_DOWN, function (err, curNode) {
//请求网络数据
//this.ReqMoreGameItem();
console.log("点击了更多游戏:" + curNode.name);
})*/
//buttonComp.clickEvents();
})
console.log("实例化更多游戏预制体" + element.id);
});
console.log("实例化更多游戏预制体...")
}
/**
* 点击MoreGameItem
*/
public ClickMoreGameItem(event: EventMouse) {
//请求网络数据
MainMgr.Instance().moregamePanel.ReqMoreGameItem();//这样写才能访问到
console.log(“点击了更多游戏:” + (event.target as Node).name);
}