Posted on 2007-01-07 02:15
云自無心水自閑 閱讀(1085)
評論(4) 編輯 收藏 所屬分類:
Flex 、
Cairngorm 、
Flex2
?
在Flex的開發(fā)過程中,尤其是在使用Cairngorm的時候,總會遇到需要在Model的屬性值改變后,需要調(diào)用一個指定的函數(shù)。傳統(tǒng)的解決方法是使用一個Setter方法,在這個方法中首先對屬性賦值,然后調(diào)用指定的函數(shù),比如:
---------------------------
[ChangeEvent("deleteEnabledChange")]
public function get deleteEnabled() : Boolean {
return _deleteButtonVisible;
}
public function set deleteEnabled(value : Boolean) : Void {
_deleteButtonVisible = value;
SimpleButton(deleteButton)._visible = false;
dispatchEvent(new Event("deleteEnabledChange", this));
}
--------------
但是現(xiàn)在我們有一個更簡潔的解決之道
首先添加這樣一個類
package com.adobe.ac.util
{
?? public class Observe
?? {
????? public var handler : Function;
?
????? public function set source( source : * ) : void
????? {
???????? handler.call();
????? }
?? }
}
然后就可以使用這個作為標(biāo)簽了。
<util:Observe source="{ model.myProperty }"
????????????? handler="{ this.myFunction }"/>
使用了這樣的一個標(biāo)簽后,今后嘦是對model.myProperty進(jìn)行賦值,就會調(diào)用myFunction
這個號稱世上最小的標(biāo)簽是不是很好用啊?