Puerts中扩展组件bug
按下面方法创建的虚拟列表, if(item instanceof UIServerListItem){ 。。。。。当滑动列表时, 这里有部分item列表项目不是自定的的 UIServerListItem 对象。。。, 是自定义的列表项被GC了还是什么原因呢,是Puerts的Bug? 还是循环列表的问题?如果要重现代码的话可以看这个:https://github.com/Justin-sky/Nice-TS , 打开服务器列表界面就能重现。
1,创建一个虚拟列表,
this.serverList.SetVirtual();
this.serverList.itemRenderer = (index:number, obj:UIServerListItem)=>{
this.renderServerListItem(index, obj);
};
this.serverList.numItems = 200
具体渲染方法:
private renderServerListItem(index:number, item:UIServerListItem){
if(item instanceof UIServerListItem){
console.log("1111111111111111111111")
}else{
console.log("333333333333333333")
}
item.itemLabel = this.voServer.serverMap.get(this.clickAreaIndex+1)[index].serverName;
//serverBtn.icon = FairyGUI.UIPackage.
}
2,然后自定义一个列表项,
export class UIServerListItem extends FairyGUI.GButton{
public set itemLabel(txt:string){
this.text = txt;
}
}
注册自定义组件:
FairyGUI.UIObjectFactory.SetPackageItemExtension("ui://l64dumk9feeg54",
()=>{
let item = new UIServerListItem();
return item;
})
1,创建一个虚拟列表,
this.serverList.SetVirtual();
this.serverList.itemRenderer = (index:number, obj:UIServerListItem)=>{
this.renderServerListItem(index, obj);
};
this.serverList.numItems = 200
具体渲染方法:
private renderServerListItem(index:number, item:UIServerListItem){
if(item instanceof UIServerListItem){
console.log("1111111111111111111111")
}else{
console.log("333333333333333333")
}
item.itemLabel = this.voServer.serverMap.get(this.clickAreaIndex+1)[index].serverName;
//serverBtn.icon = FairyGUI.UIPackage.
}
2,然后自定义一个列表项,
export class UIServerListItem extends FairyGUI.GButton{
public set itemLabel(txt:string){
this.text = txt;
}
}
注册自定义组件:
FairyGUI.UIObjectFactory.SetPackageItemExtension("ui://l64dumk9feeg54",
()=>{
let item = new UIServerListItem();
return item;
})
没有找到相关结果
已邀请:
1 个回复
谷主
赞同来自: