在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
这个号称世上最小的标签是不是很好用啊?
分享到:
相关推荐
`addBook()`函数的主要任务是将用户输入的数据封装到一个新的`BookVO`对象中,并创建一个自定义事件`AddBookEvent`。这个事件会通过Cairngorm的事件调度器`CairngormEventDispatcher.getInstance().dispatchEvent...
同时,为了保证数据的准确性和一致性,我们还需要在Model中实现事件监听,以便在数据发生变化时通知其他组件。 视图(View)部分,即用户界面,通常由Flex组件构成。在这里,用户可以输入当前等级和经验值,然后...
Flex开发框架Cairngorm是Adobe Flex应用中的一个轻量级设计模式集合,它为创建可维护、可扩展的富互联网应用程序(RIA)提供了一种结构化的方法。Cairngorm由ThoughtWorks公司的Peter Farley在2005年创建,自那时起...
尽管现在已经有了许多其他Flex和ActionScript框架,如Spark和RobotLegs,但Cairngorm因其简洁和灵活性仍然受到很多开发者的喜爱,尤其是对于初学者,它是一个很好的学习起点。通过深入理解和实践Cairngorm,你可以...
在“UserManagerDemo”这个压缩包中,很可能包含了一个关于用户管理的示例应用,它演示了如何使用Cairngorm来处理用户相关的业务逻辑。这个示例可能包括创建、读取、更新和删除(CRUD)用户数据,以及处理与用户管理...
在此,我们主要探讨的是Flex中的Cairngorm框架以及FABridge库的使用,并通过一个名为FABridgeDemo的实例来深入理解这两个工具的结合应用。 Cairngorm是Adobe社区推出的一个轻量级MVC(Model-View-Controller)设计...
Flex 提供了强大的用户界面组件和图形库,Cairngorm 是一个轻量级的MVC框架,而BlazeDS则是用于Flex与Java后端服务之间数据交互的中间件。这篇文档将详细介绍如何将这三个技术整合到一起,以实现高效、可扩展的RIA...
1. **IOC 容器**:Spring Actionscript 提供了一个 IOC 容器,它负责管理应用程序中的对象生命周期,包括对象的创建、依赖注入和销毁。这使得开发者无需在代码中直接创建对象,而是通过配置文件或注解来声明依赖关系...
这里的`LoginHandle`函数就是视图事件的处理器,当用户点击登录按钮时,它会检查输入是否有效,然后创建一个新的`LoginEvent`实例,并通过`CairngormEventDispatcher`广播这个事件。 3. **Front Controller**:...
Cairngorm Extensions是一个流行的Flex MVC框架,它简化了Flex应用程序的设计和开发过程。 - **Model**: 用于管理数据模型和业务逻辑。 - **View**: 负责用户界面的展示。 - **Controller**: 作为模型和视图之间的...