【ASQuery 1.0.2】
---------------- 目錄------------------
此項目為FlashBuilder庫項目。
src:源文件目錄
bin:生成ASQuery.swc目錄
doc:API文檔目錄
demo:測試例子目錄
---------------- 說明------------------
基本設計思路參考開源框架JQuery。
基於flash的特性來設計構建。用於簡化顯示編程。
---------------- 特性------------------
1.良好的兼容性:不用修改原有代碼結構,可以隨時嵌入項目使用。
2.強大的選擇性:通過選擇器方便的選取顯示對象,支持名字、類、和實例選取對象。
3.支持鍊式編程:通過鍊式編程,可極大減少代碼量。如給一個名字為ball的元件設置坐標和點擊事件:
$("ball").attr({"x":100,"y":100}).click(ballClickHandler);
4.優化的事件綁定和解除綁定機制,擺脫原生事件機制的釋放方式,同時不用修改繼承體系。
监听释放方式如下:
//释放ball的所有监听
$("ball").unbind();
//释放ball的所有CLICK事件监听
$("ball").unbind(MouseEvent.CLICK);
//释放ball的用ballClickHandler绑定的点击事件监听
$("ball").unbind(MouseEvent.CLICK,ballClickHandler);
5.一鍵釋放顯示對象資源佔用:$("ball").dispose()。
6.可擴展的輔助函數,可以添加更多方便的函數方便你的開發。
7.有良好的代碼提示。
---------------- API ------------------
API生成文檔在doc目錄以下為我整理的文字化API說明: 【選擇器】
名字選擇器:$("ball") => 獲得名字為ball的所有實例,有多個可以用空格分隔,如$("ball1 ball2 ball3") 類選擇器:$(Sprite) => 獲得類或基類為Sprite的所有實例實例選擇器:$(myBall) => 獲得實例為myBall的實例實例數組選擇器:$(ballArr) => 獲得ballArr數組裡的所有實例
【通用函數】
初始化:ready(fun:Function) 設置元素內部屬性:attr(name: ,value: =null) 獲取元素內部屬性:getAttr(param:String) 運行元素內部方法:fun(name:String,params:Array=null) 對所有元素執行方法:all(fun:Function) 通過新的選擇器查找內部元素:find(selector:*,onlyChild:Boolean = false) 綁定事件監聽:bind(type:String,handler:Function) 解除事件監聽:unbind(type:String,handler:Function) 手動觸發事件:trigger(event:Event) 獲取內部實際元素:get(index:int):DisplayObject 獲得內部實際元素個數(如果為0,表示沒有獲取到元素):length() 獲取內部容器:getContainer(index:int = 0):DisplayObjectContainer
【輔助函數】
綁定點擊事件:click(handler:Function) 切換Boolean類型的屬性狀態:toggle(name:String = null) 添加子元素:append(child: ) 添加到父元素:appendTo(parent: ) 移除自己:remove() 移除所有子元素:empty() 釋放資源:dispose() 設置自己的深度到頂層:setIndexTop() 設置自己的深度到底層:setIndexBottom() 設置位置:setPosition(x:Number,y:Number) 改變位置:addPosition(x:Number,y:Number) 設置旋轉角度:setRotation(r:Number) 緩動:tween(duration:Number, vars:Object)
---------------- 代碼模版------------------
第一步引用庫import cx.asQuery.*; 第二步初始化
---------------- 注意事項----------------
1.選擇器通過遍歷所有子集可能會導致性能問題。如果只要遍歷一層子集可以通過優化方式調用:
$("ball",ball的父容器,true);
或
$(ball的父容器).find("ball",true);
2.篩選器使用過於頻繁,會生成過多的ASQueryObject對象,如果同一篩選器要使用很多次,通過把選擇器緩存為變量,可節約篩選開銷:
var $ball:ASQueryObject = $("ball");
$ball.attr("x",100);
$ball.click(clickHandler);
3.上面幾條只是介紹可以優化的地方,不用一開始就用優化的方式開發,這樣就失去ASQuery的靈活性。
4.在模塊較多的項目建議選擇操作都這樣使用(不會使層級的相互影響):
$(this).find("ball",true).xx().xx();
---------------- 後續計劃----------------
添加緩動動畫支持- OK 優化選擇器的性能添加更多輔助函數添加更多的選擇器增加可插件式擴展
---------------- 聯繫方式----------------
提交bug或貢獻代碼請發郵箱: [email protected] 或[email protected]