Posted on 2007-01-07 02:15
云自无心水自闲 阅读(1081)
评论(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
这个号称世上最小的标签是不是很好用啊?