`
logicigam
  • 浏览: 33093 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

为PureMVC添加Metadata Tag通知绑定

阅读更多
最近刚开始学用PureMVC,在此之前看过一个flex360大会的视频,介绍过一个叫swiz的flex框架,印象最深的是它可以利用一个叫Mediate的Metadata Tag来绑定事件和控制器中的回调方法。在学习PureMVC的过程中发现要将Notification绑定到一个视图方法巨麻烦,要先写一个listNotificationInterests,再来一个HandleNotification,而且对不同Notification的处理还是揉在这一个方法里的,当时我就琢磨,为什么不能利用Metadata Tag来绑定通知和回调方法涅?
我随即研究了下swiz和pureMVC的源码,几小时后宣告成功,现在我在Mediator中可以这样绑定
notification------
[Mediate(notification="${org.alex.flex.rss.ApplicationFacade.LOAD_RSS_CHANNEL_COMPLETE}")]
		public function listRss(notification:INotification):void
		{
			channel.dataProvider=notification.getBody()as ArrayCollection;
		}
	}

这样就可以将ApplicationFacade中定义的名为LOAD_RSS_CHANNEL_COMPLETE的通知(LOAD_RSS_CHANNEL_COMPLETE是静态常量的名字,我自己写了一个Binding Expression的解析工具,不过比较简陋,只能解析出形如[FullclassName].[static const Name]的静态常量)绑定到Mediator中的listRss方法,Notification自动传入listRss方法的参数中,原来的listNotificationInterests和HandleNotification方法都可以删掉了。
我修改PureMVC源码的地方只有三处,一个是添加了一个叫ExpressionUtils.as的解析Binding Expression的工具另一个是在core部分的View.as中添加了resolveMediators,addMethodMediators,和getBeanDescription三个方法,并修改了registerMediator方法的实现,最后一个是在.actionScriptProperties文件中添加了
additionalCompilerArguments="-keep-as3-metadata+=Mediate"这一条配置,目的是为了让flex能够识别我加入的Mediate,metaTag。其他地方完全没动,除了Mediator不需要再修改其他任何部分。其实同样的方法可以用来绑定视图中的事件和Mediator中的方法,不过时间关系我就没做,如果大家有兴趣可以一起研究 ,源码和swc我打包放下边儿了:lol:
分享到:
评论
1 楼 xx-xzh 2009-03-18  
嗯,不错,感谢

相关推荐

    PureMVC 中文版

    而PureMVC作为一个框架,为Flex应用程序提供了模型-视图-控制器(Model-View-Controller,MVC)的设计模式实现,帮助开发者遵循良好的软件工程原则,使得复杂的Flex项目管理变得更为有序。 标签 "PureMVC" 进一步...

    可以运行的puremvc的登陆实例.

    PureMVC是一种经典的多层应用架构模式,它为ActionScript、JavaScript、Swift等语言提供了一个可复用的框架,用于构建松耦合、模块化的应用程序。 PureMVC的核心概念包括三个主要角色:模型(Model)、视图(View)...

    qt版本pureMVC

    这个版本的PureMVC允许开发者更专注于业务逻辑,而不是关注如何把各个组件绑定在一起。 **PureMVC组件** 1. **模型(Model)**:模型组件负责存储和管理应用程序的数据。在PureMVC中,模型通常通过Proxy类来实现,...

    Lua实现PureMVC

    这个是一个根据AS3(ActionScript 3) pureMVC而转换过来的lua pureMVC。所有的接口完全跟AS3版本一致。 若是想使用,可以直接查看网上的pureMVC 文档,我并未对任何一个函数改名或者更换参数位置。 注意,这个PureMVC...

    PureMVC.rar

    PureMVC是一个开源的、轻量级的MVC(Model-View-Controller)框架,它最初是为ActionScript设计的,但后来发展出了多种语言版本,包括C#。本压缩包"PureMVC.rar"提供了PureMVC在C#平台上的实现,包括单线程版和多...

    pureMVC_AS3

    在AS3版本中,PureMVC为ActionScript 3.0开发者提供了强大的工具,帮助他们构建模块化、可维护性强的应用程序。 **MVC设计模式** MVC模式是软件工程中的一种架构模式,将应用程序分为三个核心部分:模型(Model)...

    PureMVC总结(附Hello World含PureMVC源码代码和文档)

    在PureMVC中,MVC的三个主要组成部分被抽象为类: 1. **Model**(模型):负责存储和管理应用程序的数据。在PureMVC中,模型由`Proxy`类来实现,它提供了一个注册和访问数据的中央接口。 2. **View**(视图):...

    基于PureMVC框架实现的Qt的一个例子

    **PureMVC框架详解** PureMVC是一种轻量级、模型-视图-控制器(MVC)框架,最初是为ActionScript开发的,后来被移植到多种编程语言中...此外,还可以尝试扩展这个例子,添加更多功能,以加深对PureMVC和Qt集成的理解。

    pureMVC安装包,SDK

    如你下载后的存放的目录是D组:/下载,解压后将创建一个名为PureMVC_AS3_2_0_4的文件夹(注:其中的2_0_4是版本号) ; 打开PureMVC_AS3_2_0_4文件夹,您会发现里面有三个文件夹: asdoc :对应于API的文档,它的首页...

    PureMvc实例 PureMvc第一个实例

    在这个名为"MyFirstPureMvc"的压缩包中,你将找到一个使用PureMvc开发的Adobe AIR项目的完整实例,这将帮助初学者理解如何在实际项目中应用PureMvc。 首先,让我们深入了解一下PureMvc的MVC架构: 1. **模型...

    PureMVC五子棋游戏源码,学习PureMVC

    PureMVC是一个流行的、开源的、轻量级的、跨平台的MVC框架,它为开发人员提供了一种结构化的编程模式,用于组织和管理应用程序的业务逻辑、用户界面和数据。在这个五子棋游戏中,我们可以看到PureMVC的精髓是如何被...

    Unity 专用 pureMVC

    在Unity中,这些概念被转化为具体的类和接口,使得开发者可以遵循MVC设计模式来编写代码。 1. 模型(Model)层:这是应用的数据层,负责存储和管理业务数据。在Unity中,模型类通常继承自PureMVC的`IProxy`接口,...

    PureMVC_CSharp.zip_csharp_pureMVC_pureMVC C_pureMVC C#_疯铮铮

    在C#版本中,PureMVC为开发者提供了一种规范化的、可扩展的方式来组织代码,使得项目更易于维护和管理。 标题中的"PureMVC_CSharp.zip_csharp_pureMVC_pureMVC C_pureMVC C#"表明这是一个关于C#语言实现的PureMVC...

    PureMVC登陆例子

    PureMVC将这个模式进一步抽象为四个核心角色:Proxy(代理)、Mediator(中介者)、Command(命令)和MacroCommand(宏命令)。 在这个"PureMVC登录例子"中,我们可能会看到以下架构: 1. **Proxy**:通常包含用户...

    PureMVC_study

    PureMVC是一款轻量级的框架,主要应用于Flex和AS3开发,它基于经典的Model-View-Controller(MVC)设计模式,为开发者提供了一种组织代码、解耦组件的强大工具。PureMVC的核心理念是通过分离业务逻辑、用户界面和...

    PureMVC C#框架

    PureMVC C#框架是一种基于模型-视图-控制器(MVC)设计模式的轻量级应用框架,专为C#编程语言设计。这个框架旨在提高软件开发的组织性和可维护性,通过分离业务逻辑、用户界面和应用程序数据,使得开发者能够更高效...

    PureMVC C++架构代码

    在C++版本的PureMVC中,它充分利用了面向对象编程的优势,为开发者提供了强大而灵活的工具。 PureMVC的C++实现包括以下几个关键组件: 1. **Model(模型)**:模型层负责管理应用程序的数据。在PureMVC中,模型...

    pureMVC源代码

    纯MVC(PureMVC)是一个轻量级的框架,用于构建基于模型-视图-控制器(Model-View-Controller)设计模式的应用程序。这个框架最初是为ActionScript编程语言设计的,但后来被移植到了多种其他编程语言中,包括Java、...

    pureMVC资料包

    4. **通知机制**:通过Notifier类,PureMVC实现了观察者模式,使得任何对象都可以订阅和发布通知,增强了组件间的通信。 5. **多线程支持**:PureMVC也提供了一种多线程模型,使得开发者可以在不同线程中运行不同的...

    puremvc开发指南

    标题 "PureMvc 开发指南" 指向的是一个关于 PureMVC 框架的教程或参考材料,这是一款广泛应用在多个平台上的轻量级、模块化、面向切面编程(AOP)的设计模式框架。PureMVC 提供了一种结构化的解决方案,帮助开发者在...

Global site tag (gtag.js) - Google Analytics