Posted on 2007-01-07 02:15
云自無心水自閑 閱讀(1084)
評論(4) 編輯 收藏 所屬分類:
Flex 、
Cairngorm 、
Flex2
?
在Flex的開發過程中,尤其是在使用Cairngorm的時候,總會遇到需要在Model的屬性值改變后,需要調用一個指定的函數。傳統的解決方法是使用一個Setter方法,在這個方法中首先對屬性賦值,然后調用指定的函數,比如:
---------------------------
[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));
}
--------------
但是現在我們有一個更簡潔的解決之道
首先添加這樣一個類
package com.adobe.ac.util
{
?? public class Observe
?? {
????? public var handler : Function;
?
????? public function set source( source : * ) : void
????? {
???????? handler.call();
????? }
?? }
}
然后就可以使用這個作為標簽了。
<util:Observe source="{ model.myProperty }"
????????????? handler="{ this.myFunction }"/>
使用了這樣的一個標簽后,今后嘦是對model.myProperty進行賦值,就會調用myFunction
這個號稱世上最小的標簽是不是很好用啊?