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