创建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()方法。