eui-eui.IAssetAdapter

我們通常要自己實現接口 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);
        }
    }
}

spacer

沒有留言:

張貼留言