标签归档:Flex

为MXItemRenderer添加自定义状态

MXItemRenderer是专为MX DataGrid、MX AdvancedDataGrid及MX Tree这类MX组件提供Spark项目渲染器的基类。与其它Spark渲染器一样,它有normal、 hovered、selected和dragging等状态。但在项目渲染器中添加了自定义状态后,默认状态会覆盖原有状态,保留不了新增状态,因而会出现项目渲染器界面错乱的问题(如实例中第一个MX DataGrid)。怎么解决这一个问题呢? 继续阅读为MXItemRenderer添加自定义状态

Parsley快速注入实例

当Parsley将组件装配到上下文,Parsley会通过反射仔细查看该组件(检查所有它的属性,而不是值)并进行识别,不只是通过组件名,还包括它的定义和构成。Parsley能检查注入接口,它知道是什么类实际上实现了该接口。然而大型应用中需要连接许多复杂组件,Parsley对所有管理对象和组件进行反射操作代价很大,这时FastInject就派上用场了。FastInject允许无反射注入。换句话说,你仍然可以在视图注入管理对象,而组件不会连接到上下文中,因此不付出反射造成的性能代价。 继续阅读Parsley快速注入实例

Parsley自动组件装配实例

前面的实例我们都是使用<Configure>标签将一个组件直接连接到它所在的上下文中,这就是显式组件装配。这种方式虽然很方便的,但它不是唯一的方法。而且这种方式带来了一个问题:我们不得不为每个要管理的组件类添加配置标签。可不可以使用上下文配置文件来管理这些组件呢? 继续阅读Parsley自动组件装配实例

Parsley松耦合绑定实例

松耦合绑定是Parsley的一大特性。与Flex绑定不同的是,不能在声明中使用MXML对象,相同的是都可以创建不同的对象之间的绑定。一旦更新一个对象,另一个对象立即以解耦的方式更新。这就意味着绑定是用对象类型来识别的。发布者甚至不需要是一个被容器管理的对象,这点与事件消息相似。发布一个对象也不会引起反射(除非指定它应该管理),比依赖注入更轻量级。而且,它比依赖注入更动态化。订阅可以接受空属性,甚至是多个发布者更新的同一属性。与依赖注入和事件消息不同的是,松耦合绑定可以在组件的整个生命周期事件中进行发布。这些都是引入Parsley松耦合绑定的原因。 继续阅读Parsley松耦合绑定实例

Parsley事件消息实例

虽然前面讲述的类型依赖注入已经允许一定程度的解耦,但有时程序某些部分需要更松散的耦合,让应用程序的一部分通过消息进行通信,发送方和接收方不须了解彼此。Flash/Flex事件机制很强大。从发送方来看,它实现了完全解耦。需要发送的消息类或组件不需要知道谁将侦听消息,所有要做的就是派发事件。但从接收方来看,它不是完全解耦。在Flash/Flex中,你必须通过监听事件侦听器来捕获消息,而事件侦听器必须是可调度该事件的对象的类/组件的实例。Flash事件有“冒泡”功能,可以通过对派发事件的视图对象父容器添加事件侦听器来捕获消息。也说是说,Flash/Flex事件可以通过视图层次结构并在其他地方捕获消息,这意味着接收时它还是提供了一些解耦,但事件侦听器不得不依附组成视图层次结构的实例。你可以通过应用对象根来解耦,但这也意味着你不能有更多的特定范围。所以说Flash和Flex事件并没有实现“消息总线”和完全解耦,这正是引入Parsley事件消息的根本原因。 继续阅读Parsley事件消息实例