91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Egret之自定義類庫(一)

發布時間:2020-06-16 23:16:15 來源:網絡 閱讀:5130 作者:Aonaufly 欄目:開發技術

(Egret舊版  4.0.1以下建議這么寫)今天寫了一個屬性綁定的類庫.

步驟如下 :

一 , 新建一個EUI項目,刪除Main.ts文件

Egret之自定義類庫(一)

二 , 發布項目

Egret之自定義類庫(一)

三 , 新建庫項目(bind) egret create_lib bind

Egret之自定義類庫(一)

得到庫項目結構

Egret之自定義類庫(一)

四,手寫bind.d.ts文件為bind.js如下:

declare module bind{
	/**
     * 綁定的數據接口( CallBack的參數 )
     * @author Aonaufly
	 */
	interface IBindEventData<T>{
		/**舊值*/
		$oldValue? : T;
		/**新值*/
		$newValue : T;
	}
}

declare module bind{
	 /**
     * 所有綁定Model的基類
     * @author Aonaufly
     */
	abstract class BaseBindModel extends egret.EventDispatcher{
		/**
         * 發布變化的數據
         * @param {string} $attribute_name 屬性
         * @param {string} $field_name 對應的字段
         * @param {T} $value 數值
         */
		changeValue<T>($attribute_name : string , $field_name : string , $value : T):void;
	}
}

declare module bind{
	 /**
     * 綁定屬性訂閱者(用后請銷毀)
     * @author Aonaufly
     */
	class Bind2Subscriber<T>{
		 /**
         * 銷毀綁定釋放資源
         */
		destory() : void;
	}
}

declare module bind{
    /**
     * 綁定工具類
     * @author Aonaufly
     */
	class BindTool{
		 /**
         * 屬性綁定變換
         * @param {any} $v2Class View層Class
         * @param {string} $v2Attribute View層屬性
         * @param {BaseBindModel} $d2Class Model層Class
         * @param {string} $d2Attribute Model層屬性
         * @param {boolean} $isFirst 是否首次更新數值
         * @returns {bind.Bind2Subscriber<T>}
         */
		static bindProperty<T>( $v2Class : any , $v2Attribute : string , $d2Class : BaseBindModel , $d2Attribute : string , $isFirst? : boolean ) : Bind2Subscriber<T>;
		 /**
         * 設置回調方法綁定
         * @param {Function} $callBack View層回調方法
         * @param $d2Class Model層Class
         * @param {string} $d2Attribute Model層屬性
         * @param {boolean} $isFirst 是否首次更新數值
         * @returns {bind.Bind2Subscriber<T>}
         */
		static bindCallBack<T>( $callBack : Function , $d2Class : BaseBindModel , $d2Attribute : string , $isFirst? : boolean ) : Bind2Subscriber<T>;
	}
}

五,在庫項目src中加入 bind.js和bind.d.js

Egret之自定義類庫(一)

六,在庫項目libs加入依賴的d.ts文件

Egret之自定義類庫(一)

七,編寫package.json如下

{
	"name": "egret",
	"version": "3.2.4",
	"modules": [
		{
			"name": "bind",
			"description": "bind",
			"files": [
				"bind.js",
				"bind.d.ts"
			],
			"root": "src"
		}
	]
}

八,編譯庫項目

Egret之自定義類庫(一)

九,引入到Egret項目中并使用(將bind自定義類庫放在與egret項目平級的目錄上)

引入(egretProperties.json):

Egret之自定義類庫(一)

命令 egret build -e 后,第三方類庫應用成功

Egret之自定義類庫(一)


.................................完畢(可完美使用)

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

南靖县| 高安市| 泰兴市| 高雄市| 房产| 开远市| 大名县| 腾冲县| 金坛市| 乐业县| 新巴尔虎左旗| 巴楚县| 响水县| 青川县| 岑巩县| 台南市| 乌恰县| 保亭| 麟游县| 日喀则市| 娱乐| 汉中市| 南宁市| 林州市| 柳河县| 南京市| 本溪| 南澳县| 沧州市| 台中市| 东阿县| 安国市| 平乐县| 阳泉市| 米林县| 涟水县| 革吉县| 桐城市| 江门市| 巴楚县| 辽中县|