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