`
qq123zhz
  • 浏览: 536428 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

对于swiz1.0框架的一点理解

    博客分类:
  • Flex
阅读更多

Swiz的核心是个简单的控制反转框架。借助于IoC框架,应用组件(例如视图)无需实例化其依赖(所用的对象),甚至都不用查找。在组件创建时框架会注入这些依赖(因此术语依赖注入也用来表示这种行为)并产生松耦合且可重用性更好的组件。

Swiz IoC Framework所管理的组件叫做bean

 

Swiz 早期版本的注入方式:

[Autowire(bean="contactService")]

public var contactService:RemoteObject;

我采用的注入方式为:

[Inject(source=” contactService”)]

public var contactService:RemoteObject;

可以把bean注入到controllerservicesview或其他组件中。

 

例如我在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中控制事件的捕获,但是前提是发出的事件的冒泡功能要打开,这样swizcontroller中使用[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框架1.0压缩包

    Swiz框架是一款面向ActionScript 3.0的轻量级MVC(Model-View-Controller)框架,主要用于Flex开发。Flex是一种用于构建富互联网应用程序(RIA)的技术,它基于Adobe Flash Player或Adobe AIR运行时环境。Swiz框架的...

    flex swiz框架ppt

    Swiz框架是一个专门为Flex和ActionScript开发者设计的轻量级框架,它的灵感来源于Spring框架,主要目的是通过控制反转(IOC)来简化Flex应用的开发。该框架的核心是提供了一个简单的方式来实现模型-视图-控制器(MVC...

    f最新lex swiz框架

    Swiz 模仿了Spring 框架,它的核心是个简单的控制反转框架。借助于IoC框架,应用组件(例如视图)无需实例化其依赖(所用的对象),甚至都不用查找。在组件创建时框架会注 入这些依赖(因此术语“依赖注入”也用来...

    Swiz的sample

    Swiz是一款轻量级的ActionScript 3框架,主要用于开发基于Adobe Flex的应用程序。这款框架以其简洁、灵活和强大的特性而受到开发者的欢迎。Swiz致力于简化MVC(Model-View-Controller)模式的实现,使得在Flex项目中...

    Swiz 1.4 最新源码

    swiz框架的最新官网源码,供大家一同学习!

    Flash/Flex 框架应用 Cairngorm、Mate、PureMVC以及Swiz 的典型例子

    附件是关于 Flash/Flex 几个重要框架 Cairngorm、Mate、PureMVC以及Swiz 的典型例子,由 Tony Hillerson 提供 Homepage: http://insideria.com

    swiz-framework-develop

    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框架比较分析示例代码

    在本示例中,我们将探讨四个常用的Flex IOC框架:Spring ActionScript、Parsley、Flicc和Swiz,通过比较它们的特性和使用方式,帮助你更好地理解和选择适合你的项目需求的框架。 1. Spring ActionScript: Spring是...

    node-swiz:REST API中对象的序列化和验证框架

    node-swiz是一个序列化和验证框架,旨在与通常使用XML和JSON作为传输方式的RESTful API一起使用。 安装 npm install swiz 教程和介绍 运行测试 npm run-script test 建置状态 执照 node-swiz在下分发。

    FLEX MVC框架指南与应用示例

    学习Flex MVC框架需要理解其基本原理,掌握如何创建模型、视图和控制器,以及如何在它们之间协调工作。此外,熟悉Java开发,尤其是与Flex客户端的集成技术,也是必不可少的。通过实际项目实践,可以更深入地理解和...

    flex mvc架構

    **Flex框架对MVC的支持**:Adobe Flex SDK提供了一套强大的框架,如 Cairngorm、PureMVC、Mate 和 Swiz,来支持MVC模式的实现。这些框架提供了诸如命令模式、代理、观察者模式等设计模式,使得开发者能更方便地实现...

    FLEX 系统管理器 SystemManager

    在Flex开发中,SystemManager是一个至关重要的核心组件,它扮演着整个应用程序的管理者角色。SystemManager不仅负责控制Flex应用的...理解和掌握SystemManager的工作原理对于提升Flex应用的开发质量和性能至关重要。

    flex中文教程 资料

    7. ** Cairngorm、PureMVC、Swiz等框架**:Flex社区发展出了一些架构框架,如Cairngorm和PureMVC,它们提供了一种组织和管理Flex应用复杂性的结构。Swiz则是一个轻量级的依赖注入框架,有助于解耦代码。 8. **Flex...

    flash_flex.rar_flex

    10. ** Cairngorm、PureMVC、Swiz等框架**:这些是用于Flex应用的MVC架构的流行框架,它们帮助组织代码并促进可维护性。 11. **Display List**:AS3中的显示列表管理所有可视元素,理解其层次关系和渲染顺序对布局...

    Flex__as__面试题.doc

    总的来说,理解AS2与AS3的区别,掌握各种Flex框架的优缺点,以及如何在实际开发中应对性能和内存管理问题是Flex开发者必备的知识点。通过合理的架构设计和工具使用,可以提高Flex应用的效率和用户体验。

    笔记4马鉴.docx

    4. **Swiz**和**SpringActionScript**:这两个框架汲取了Cairngorm和PureMVC的优点,同时减少了它们的缺点。它们充分利用了Flex的框架事件机制,引入了控制反转(IOC)和依赖注入(DI)的概念,使得数据操作和事件...

    FlexBuilder2帮助文档

    7. **Flex框架**:深入理解Flex框架的核心概念,如 Cairngorm、PureMVC 或 Swiz 等,这些框架提供了更好的架构设计和模块化开发。 8. **服务连接**:Flex可以与各种后台数据源进行通信,如AMF、SOAP、REST等。学习...

    Flex从入门到实践——源代码(12,13,14章)

    总之,这个压缩包是一个极好的资源,对于想要提升Flex开发技能的人来说,通过阅读和分析源代码,可以深入理解Flex的工作原理,提高实际开发能力。记得花时间逐行查看代码,理解每一段代码的功能,这样你会从中...

Global site tag (gtag.js) - Google Analytics