Swiz的核心是个简单的控制反转框架。借助于IoC框架,应用组件(例如视图)无需实例化其依赖(所用的对象),甚至都不用查找。在组件创建时框架会注入这些依赖(因此术语“依赖注入”也用来表示这种行为)并产生松耦合且可重用性更好的组件。
Swiz IoC Framework所管理的组件叫做bean。
Swiz 早期版本的注入方式:
[Autowire(bean="contactService")]
public var contactService:RemoteObject;
我采用的注入方式为:
[Inject(source=” contactService”)]
public var contactService:RemoteObject;
可以把bean注入到controller,services,view或其他组件中。
例如我在CalcController中编写:
[Bindable]
public var surebetView:SurebetView;
我在其他的as/mxml,如果想同步获得或者更改该对象的值,可以在as/mxml中编写:
[Bindable]
[Inject(source= "calcController.surebetView",bind="true")]
public var surebetView:SurebetView;
参数:source 代表你注入bean的位置,blind代表是否绑定,至于绑定的意思,大家应该很明白。
在swiz 中,时间触发后,swiz 在controller中控制事件的捕获,但是前提是发出的事件的冒泡功能要打开,这样swiz在controller中使用[EventHandler]可以捕获到该事件。
在as/mxml中,触发事件的方式为:
1、在继承与UIComponent的组件:
var e:CalcEvent=new CalcEvent(CalcEvent.CALC_BLANCEMODE);
e.total=total;
e.arrayData=arrayData;
dispatchEvent(e);
2、非继承与UIComponent的组件:
必须先声明:
[dispatcher]
Public var dispatcher:EventDispatcher;
然后调用:
dispatcher.dispatchEvent(e);
本人在实践当中发现,对与AIR环境中NativeMenu,没有生效,报错为dispatcher为空。
例如:
[EventHandler(event="CalcEvent.CALC_GAME", properties="surebetView")]
public function commonCalcHandler(surebetView:SurebetView):void{}
参数:
Event:事件名称;
properties 为该事件传递过来的对象,该对象必须在CalcEvent中定义,传递过来的名字必须和定义时相同。
Scope:事件作用域:local,global
可以用多个[EventHandler]作用于同一个方法:
[EventHandler(event="CalcEvent.CALC_GAME", properties="surebetView")]
[EventHandler(event="CalcEvent.CALC_G", properties="surebetView")]
[EventHandler(event="CalcEvent.CALC_M", properties="surebetView")]
public function commonCalcHandler(surebetView:SurebetView):void{}
这样任何一个时间触发,都会调用该commonCalcHandler方法。
Swiz 有一个ServiceHelper辅助类,该辅助类在[EventHandler]方法commonCalcHandler()中使用,该类使用如下:serviceHelper.executeServiceCall(arg1,resultHandler,onfault);
使用该类可以代替addEventListener(),来实现异步的侦听和调用,对于该类是否在后台很好的处理了侦听器表示怀疑,通常情况下我们addEventListener()后,在后面的侦听方法执行完毕后要手动removeEventListener,这样便于更好的回收虚拟机内存,由于event是打开了冒泡功能的,所以我建议使用swiz 的这种方式:serviceHelper.executeServiceCall()
这样可以有利于更好的产生service层。
Chainning API:
Chainning 可以使一组事件顺序执行,而不需要我们手动触发控制。
public doEventChain() : function void
{
eventChain : EventChain = EventChain( dispatcher ); var new
eventChain.addEventListener( ChainEvent.CHAIN_COMPLETE, handleChainComplete, false, 0, true );
eventChain.addStep( EventChainStep( UserEvent( UserEvent.USER_SCREEN_ACTIVE ) ) ); new new
eventChain.addStep( EventChainStep( UserEvent( UserEvent.USER_PROCESSING_COMPLETE ) ) ); new new
eventChain.start();
}
[EventHandler( event="UserEvent.USER_SCREEN_ACTIVE" )]
public logUserScreenActive() : function void
{
// perform logic or dispatch events when the user screen is active
}
[EventHandler( event="UserEvent.USER_PROCESSING_COMPLETE" )]
public logUserProcessingComplete() : function void
{
// perform logic or dispatch events when the processing finishes
}
public handleChainComplete( event : ) : function Event void
{
// perform logic or dispatch events when the chain is complete
}
以上是自己使用swiz 的一点心得,swiz 的短小精悍,个人比较赞赏,不错。。。
分享到:
相关推荐
Swiz框架是一款面向ActionScript 3.0的轻量级MVC(Model-View-Controller)框架,主要用于Flex开发。Flex是一种用于构建富互联网应用程序(RIA)的技术,它基于Adobe Flash Player或Adobe AIR运行时环境。Swiz框架的...
Swiz框架是一个专门为Flex和ActionScript开发者设计的轻量级框架,它的灵感来源于Spring框架,主要目的是通过控制反转(IOC)来简化Flex应用的开发。该框架的核心是提供了一个简单的方式来实现模型-视图-控制器(MVC...
Swiz 模仿了Spring 框架,它的核心是个简单的控制反转框架。借助于IoC框架,应用组件(例如视图)无需实例化其依赖(所用的对象),甚至都不用查找。在组件创建时框架会注 入这些依赖(因此术语“依赖注入”也用来...
Swiz是一款轻量级的ActionScript 3框架,主要用于开发基于Adobe Flex的应用程序。这款框架以其简洁、灵活和强大的特性而受到开发者的欢迎。Swiz致力于简化MVC(Model-View-Controller)模式的实现,使得在Flex项目中...
swiz框架的最新官网源码,供大家一同学习!
附件是关于 Flash/Flex 几个重要框架 Cairngorm、Mate、PureMVC以及Swiz 的典型例子,由 Tony Hillerson 提供 Homepage: http://insideria.com
Swiz is a brutally simple micro-architecture for creating Rich Internet Applications with ActionScript 3 and Adobe Flex ## How to Contribute The Swiz team welcomes contributions to the framework in ...
在本示例中,我们将探讨四个常用的Flex IOC框架:Spring ActionScript、Parsley、Flicc和Swiz,通过比较它们的特性和使用方式,帮助你更好地理解和选择适合你的项目需求的框架。 1. Spring ActionScript: Spring是...
node-swiz是一个序列化和验证框架,旨在与通常使用XML和JSON作为传输方式的RESTful API一起使用。 安装 npm install swiz 教程和介绍 运行测试 npm run-script test 建置状态 执照 node-swiz在下分发。
学习Flex MVC框架需要理解其基本原理,掌握如何创建模型、视图和控制器,以及如何在它们之间协调工作。此外,熟悉Java开发,尤其是与Flex客户端的集成技术,也是必不可少的。通过实际项目实践,可以更深入地理解和...
**Flex框架对MVC的支持**:Adobe Flex SDK提供了一套强大的框架,如 Cairngorm、PureMVC、Mate 和 Swiz,来支持MVC模式的实现。这些框架提供了诸如命令模式、代理、观察者模式等设计模式,使得开发者能更方便地实现...
在Flex开发中,SystemManager是一个至关重要的核心组件,它扮演着整个应用程序的管理者角色。SystemManager不仅负责控制Flex应用的...理解和掌握SystemManager的工作原理对于提升Flex应用的开发质量和性能至关重要。
7. ** Cairngorm、PureMVC、Swiz等框架**:Flex社区发展出了一些架构框架,如Cairngorm和PureMVC,它们提供了一种组织和管理Flex应用复杂性的结构。Swiz则是一个轻量级的依赖注入框架,有助于解耦代码。 8. **Flex...
10. ** Cairngorm、PureMVC、Swiz等框架**:这些是用于Flex应用的MVC架构的流行框架,它们帮助组织代码并促进可维护性。 11. **Display List**:AS3中的显示列表管理所有可视元素,理解其层次关系和渲染顺序对布局...
总的来说,理解AS2与AS3的区别,掌握各种Flex框架的优缺点,以及如何在实际开发中应对性能和内存管理问题是Flex开发者必备的知识点。通过合理的架构设计和工具使用,可以提高Flex应用的效率和用户体验。
4. **Swiz**和**SpringActionScript**:这两个框架汲取了Cairngorm和PureMVC的优点,同时减少了它们的缺点。它们充分利用了Flex的框架事件机制,引入了控制反转(IOC)和依赖注入(DI)的概念,使得数据操作和事件...
7. **Flex框架**:深入理解Flex框架的核心概念,如 Cairngorm、PureMVC 或 Swiz 等,这些框架提供了更好的架构设计和模块化开发。 8. **服务连接**:Flex可以与各种后台数据源进行通信,如AMF、SOAP、REST等。学习...
总之,这个压缩包是一个极好的资源,对于想要提升Flex开发技能的人来说,通过阅读和分析源代码,可以深入理解Flex的工作原理,提高实际开发能力。记得花时间逐行查看代码,理解每一段代码的功能,这样你会从中...