Egret 自定义皮肤 ———— 引入类中以及createChildren()和 childrenCreated()的使用

创建egret游戏项目需要创建大量的皮肤EXML文件,创建之后在嵌入EXML到代码: (类似于JSON)

  • 第一种直接在代码中嵌入EXML文本内容
  • 第二中直接把skinName设置为exml文件的路径。

实例:

class ExmlTestView extends eui.Component{
    public constructor() {
        super();
        this.addEventListener(eui.UIEvent.COMPLETE,this.onComplete,this);
        this.skinName = "xxxx(.exml)";
        this.touchChildren = true;
    }

    public label: eui.Label;

    private onComplete() {
        this.label.text = "hello world!";
        this.label.textColor = 0xff0000;
    }
    
    //createChildren():用来对未绑定皮肤的手动调用创建皮肤里的内容到界面
    //childrenCreated():创建完成后底层会调用这个函数,用来覆写作一些初始化处理的(是在组件初始化完成后回调)
    private createChildren() {
    
        super.createChildren();
    
    }
}

上面的例子就是eui皮肤对应的类,在类中如何引用以及这个类中的执行顺序。

下面主要对

createChildren()
childrenCreated()

分别做出解释:
1.createChildren()方法是:
用来对未绑定皮肤的手动调用创建皮肤里的内容到界面,需要加载 exml 文件,所以就要使用到这个方法,所以
createChildren()是最先执行的方法,

2.childrenCreated()方法是:

当 exml 文件 加载完成的时候,会调用这个方法,在createChildren()方法调用之后,也就是组件初始化完成,相当于上面的实例的
onComplete()方法。


山重水复疑无路,柳暗花明又一村! 专注填坑,少走弯路!
原文地址:https://www.cnblogs.com/mqflive81/p/11233632.html