您的位置:首页 > 其它

Parsley开发指南 1 概述

2012-12-10 15:50 232 查看



1 概述

Parsley 是一个用于Flex和Flash应用程序的应用程序框架,建立在IOC容器和消息传递框架上,可用于创建高度松耦合架构。它允许你通过元数据、MXML、XML或ActionScript配置由容器托管的对象,并且很容易扩展。

Flash平台的许多其他应用程序框架是一个纯粹的Flex框架,没有Flex SDK不能使用,或是一个经典的Flash框架,没有与Flex任何更深层次的整合,Parsley是2个都有。框架的核心(IOC容器和消息传递子系统)并不依赖于Flex SDK,但是有几个Flex专用的模块,提供MXML配置支持,视图连接和Flex模块。

1.1 特性列表

本节概述中可用的特性会在适当的地方链接到手册中其他章节。

如果你感到不耐烦, 第2节:开始 包含了几个用例。

IOC Container

Parsley 是一个典型的IOC容器。它为依赖注入、对象生命周期管理和消息传递提供了支持。关键的区别是框架的使用范围:虽然仍是跟许多较小的IOC框架一样易于使用于简单的应用程序,但是它还提供了许多至关重要的特性用来构建大型的、复杂的、模块化的应用程序并且有大量扩展点。

依赖注入

IOC容器的核心功能。依赖关系可以方便地使用AS3元数据标签([Inject])在属性、方法或构造函数上声明,或者使用MXML或XML。更多查看 第4节:依赖注入

松耦合绑定

一个类似于Flex绑定的概念的功能,不同的是目标并不需要知道绑定的源。源发布一个属性上标有[Publish]的对象,那么任何其他可能会收到更新的值的对象需要在属性上标记为[Subscribe]。更多查看 第5节:松耦合绑定

消息传递

Parsley 包含一个消息传递框架,允许对象用完全松耦合的方式来发送和接收消息。你可以用 [MessageDispatcher] 标签来标记一个function属性,每当你想传递一个消息实例到系统时候就调用它,系统会按路线发送给注册的接收者。接收对象可以声明特定消息类型的关联,用一些元数据标签比如像[MessageHandler],用类型安全的方式。这是因为消息是基于类型(类)选择消息,而不是像常规AS3事件处理程序一样纯粹的基于字符串。此外消息可以发生在不同的作用域内,在全局作用域内或只是在一个特定区域(如一个AIR Window)。更多查看第6节:消息传递

管理命令

Parsley 命令支持基于独立的Spicelib命令框架。它允许命令执行的时候容器才自动将它们添加到上下文。用MXML和XML标签来声明命令或命令的序列。它允许映射命令到消息,所以每个匹配的消息引起一个新的命令被实例化并执行。作为一种选择,命令工厂也可以注入到托管对象中来手动执行。更多查看 第7节:管理命令

对象生命周期

8.5 对象生命周期方法:对象可以有标记为[Init](将在对象实例化和配置之后调用)或者[Destroy](将在容器摧毁的时候调用)的方法。

8.3 异步对象初始化: 异步初始化对象的配置选项(如对象,需要加载数据才能操作),在这种情况下,容器将延迟其他对象的初始化,直到这些配置为异步准备好了。

动态视图装配

这个模块对Flex来说非常有用,特别是解决了你通常不想在IOC容器配置文件中声明Flex组件的问题,但跟往常一样使用MXML层次结构视图。Parsley 允许这些组件当被添加到舞台的时候和IOC容器即时连接。还解决了更复杂的问题,在Flex弹出窗口或Native AIR Windows中装配组件。更多查看 第9节:动态视图装配

支持模块化应用程序

对模块化应用程序来说,这是很重要的,你可以创建可配置的子上下文,并且在需要的时候可以动态的加载和卸载他们。无缝地集成了Flex模块,但是也可以不使用。框架允许一个非常细粒度的上下文层次结构,使它能方便的在你的应用程序里为单独的窗口,弹出窗口或标签页创建单独的交流空间。更多查看 第10节:构建模块化应用程序

本地化

允许用[ResourceBinding]标签绑定属性和资源。为Flex应用程序集成了Flex ResourceManager,并且包含Flash应用程序它自己的本地化模块。更多查看 第12节:本地化

扩展性

Parsley 可以作为基础来构建高层次的框架。或者你可能只是想为用例创造一些额外的配置标签,对那些对应用程序使用频繁的操作。Parsley 是很容易扩展的。

1.2 Parsley 3.0 的新特性

本节只列出了部分的新的或者有大修改的手册,对于一般迁移步骤参见下一节。

1.3 从Parsley2 迁移到 Parsley 3

.....

1.4 从源代码构建框架

这里有两个常见情况,你可能想要自己构建框架的SWC文件,或者你想应用一个补丁或增强本地副本又或者你想建立主机的快照,利用修复或改进后才使它成为下一个官方发布的版本。两种情况都推荐你从GitHub检出项目,这样你可以很容易地跟随开发进度。从源代码构建应该非常简单,所以本节只给你一个必要步骤的简要概述。

下面的说明适用于所有项目,Parsley Core 以及所有Spicelib库和Parsley 的扩展项目。

从GitHub检出Parsley

Parsley 3 在 GitHub上托管,如果你只是想对官方发布版添加一些东西,最好查看相应的标签。如果你想跟随开发的下一个版本并建立快照,你最好查看master。(you should check out master)。

编辑属性文件

接下来,你需要改变属性对应你的环境,所有的项目都有一个build.properties.tmpl 的模版文件在build文件夹下。用build.properties为名创建一个此文件的拷贝,按照在该文件中的注释的指示去编辑它。

运行Ant Targets 构建 SWCs

最后,你只需要选择对应的Ant tagets。只产生一个SWC的项目有一个单独的compile taget,而有些项目有多个目标进行编译。SWCs会编译到 release/<version>/release. 目录下.

1.5 依赖性

Parsley 和Spicelib 发布了大量的独立的SWCs。如果你需要相应的功能你只需要添加这些SWCs到你的classpath下。Spicelib是一组不依赖于Parsley也没有很多相互依赖的库。Parsley 基于它构建功能。

下图显示了这些构件之间的依赖关系。为了清晰,Parsley 只有Parsley Core 提供的SWCs 被包含在内。图下面的表中列出的各种Parsley 扩展项目的依赖。



Parsley 扩展项目的依赖

所有的扩展都依赖于 parsley-core(包括所有传递依赖)。其他依存关系如下(省略传递依赖,你可以从上面的图中看)。

XML Tags for Flex Logging

parsley-flex, parsley-xml

XML Tags for Spicelib Logging

spicelib-logging, parsley-xml

Flash Localization

parsley-xml

Parsley Popup

parsley-flex, popup (from Cairngorm 3)

Pimento Support

pimento, cinnamon

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: