as3 非flex專案實現資料繫結

2022-09-13 05:33:10 字數 1315 閱讀 8977

來自:

最近開發的專案資料量超多,model的每一項發生了變化都要發乙個訊息通知view層去更新,超級煩瑣

不過懶人有懶辦法,剛剛寫了乙個類似flex裡[binding]的功能的方法,與大家分享一下,懶得打字,就不做解釋了,直接看**注釋吧。

package com.langhua.binder

/*** 派發屬性改變事件

* @param property 應為定義的屬性名

* @return void

* */  

protected function dispatchpropertyevent(property:string):void}}

package com.langhua.binder

/*** 將指定的資料物件(data)的指定屬性(dataproperty)與指定的顯示物件(displayobj)的指定屬性(displayobjproperty)繫結

* @param data

* @param dataproperty

* @param displayobj

* @param displayobjproperty

* */  

public static function bind(data:basevalueobject,dataproperty:string, displayobj:*,displayobjproperty:string):void

if( !displayobj.hasownproperty(displayobjproperty) )

displayobj[displayobjproperty] = data[dataproperty];

data.addeventlistener

(dataproperty,

function ():void);}

}}package com.langhua.specificvalueobject

private var _clicktimes:uint;

/** 單擊舞台的次數   */

public function get clicktimes():uint

public function set clicktimes(value:uint):void}}

最後是文件類

package

private function onclickstage(e:mouseevent):void}}

這樣寫其實model層寫起來會有些麻煩,沒增加乙個屬性都要使用getter和setter方法,但相對於在view層寫一大堆addeventlistener,我相信你更願意用前者,ok,繼續工作

as3 獲取非透明區域

bitmapdata.getcolorboundsrect 0xff000000,0x00000000,false 主要方法我們用到getcolorboundsrect 來獲取非透明區域的大小getcolorboundsrect 的引數可以方便 的讓我們賽選出非透明區域 處理過程如下 bitmapd...

As3實現漸變文字

package component style public function set bold value boolean void public function set font value string void public function set fontsize value int ...

關於Flex及AS3的百多條小小知識

www.riahome.cn 數字的不同進製之間的轉換 parseint str string,radix uint 0 number 返回十進位制的數,引數radix表示要分析的數字的基數.如果省略radix,就預設為10,除非字串的開頭是 0x 0x 或 0 trace parseint 0x1...