Egret-我的疑问:自定义组件加载skin的操作
我尝试将自己绘制的tabbar封装为自定义组件使用
// TypeScript file namespace ui { export class GameTab extends eui.Component { private checklist; constructor() { super(); this.skinName = "resource/eui_skins/GameMainTab.exml";this.tabInit(); } private tabInit(): void { //对自定义组件中的子组件进行了操作 } } }
对子组件进行操作,报出了错误
Data.ts:18 Uncaught TypeError: Cannot set property 'selected' of undefined
明显是ui没有加载完成时操作组件 报的错
那我们第一时间想到的问题一定是 egret有没有相应的事件表示ui加载完成
那么我们将初始化(对ui组件的操作)作为事件处理函数即可
namespace ui { export class GameTab extends eui.Component { private checklist; constructor() { super(); this.skinName = "resource/eui_skins/GameMainTab.exml"; this.addEventListener(eui.UIEvent.COMPLETE, this.tabInit, this); // this.tabInit(); } private tabInit(): void { //对自定义组件中的子组件进行了操作 } } }
eui.UIEvent.COMPLETE egret中 UI加载完成的事件
本文作者:博客园-前端法师
版权所有,转载请标明出处。

浙公网安备 33010602011771号