我們通常要自己實現接口 eui.IAssetAdapter, 請參考 eui.DefaultAssetAdapter. 因 eui.DefaultAssetAdapter 不敷使用. 所以我們用官方提供的素材解析器. AssetAdapter 類 (定義於 AssetAdapter.ts), 以下為 AssetAdapter 類的解釋
class AssetAdapter implements eui.IAssetAdapter {
/**
* @language zh_CN
* 解析素材
* @param source 待解析的新素材标识符
* @param compFunc 解析完成回调函数,示例:callBack(content:any,source:string):void;
* @param thisObject callBack的 this 引用
*/
public getAsset(source: string, compFunc: Function, thisObject: any): void {
// 請自己加上 console.log 觀察, 譬如滑鼠點擊 eui.Button 按鈕, 按鈕換圖時都會觸發
console.log('AssetAdapter:', source);
// 當找到圖片資源時
function onGetRes(data: any): void {
// 執行回呼函示
compFunc.call(thisObject, data, source);
}
// 檢查 default.res.json 是否有圖片資源
if (RES.hasRes(source)) {
// 同步獲取資源
let data = RES.getRes(source);
if (data) {
onGetRes(data);
}
else {
// 異步獲取資源
RES.getResAsync(source, onGetRes, this);
}
}
else {
// 用絕對路徑找資源
RES.getResByUrl(source, onGetRes, this, RES.ResourceItem.TYPE_IMAGE);
}
}
}
沒有留言:
張貼留言