您好,登錄后才能下訂單哦!
(Egret舊版 4.0.1以下建議這么寫)今天寫了一個屬性綁定的類庫.
步驟如下 :
一 , 新建一個EUI項目,刪除Main.ts文件
二 , 發布項目
三 , 新建庫項目(bind) egret create_lib bind
得到庫項目結構
四,手寫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
六,在庫項目libs加入依賴的d.ts文件
七,編寫package.json如下
{ "name": "egret", "version": "3.2.4", "modules": [ { "name": "bind", "description": "bind", "files": [ "bind.js", "bind.d.ts" ], "root": "src" } ] }
八,編譯庫項目
九,引入到Egret項目中并使用(將bind自定義類庫放在與egret項目平級的目錄上)
引入(egretProperties.json):
命令 egret build -e 后,第三方類庫應用成功
.................................完畢(可完美使用)
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。