`
hay
  • 浏览: 13309 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
社区版块
存档分类
最新评论

flex的pureMVC+Fabrication的使用例子--HelloWorld

    博客分类:
  • Flex
阅读更多

我还是新手哈,有很多地方可能写的不好,不要见怪。

 第一步:

1. 创建我们的Flex4Web项目,需要导入的lib如下图所示

 

 

2. 看看我们该如何构建Fabrication下的flex项目,以及弄清楚各个层的作用和关系,简单的可以看看下面的图

 



 

3. 首先我们应该明白的是基于pureMVCFabrication框架下的原理是如何运作的,看看下面的该项目的运作流程图:

 

 

 

 

 

 

 

 

 

 

第二:

其中需要说明一下的是,FabricationreactToTestButton1$Click(evt:Event)方法的命名原因:

1. reactTo开头是响应View层那些组件的事件的绑定的规则

2. TestButton1component包下的HelloWorldGroup.mxml的按钮ID,可看源代码如图所示:

 



  

3. Click是指绑定该组件(这里是Button)的点击事件,只要是Event都可以绑定,后面那个美元符号$就是间隔区分的。可以看看工具中显示的那些组件有什么事件类型:

 

这里的都可以绑定写成相关的方法,例如我要改成是测试消息2按钮的双击的事件响应,命名规范则是:

reactToTestButton2$DoubleClick

特别要注意的就是大小写的规范和方法的属性都是public的。

 

第三:就是响应消息的机制是如何处理的解释。

消息响应有两种方式,

第一种方式例如该项目中的方式,就是通过namespace命名空间的方式响应。

1. 首先看看我们命名空间中是如何定义代码的:

package flex.helloworld.notifications

{

    public namespace message2 = "message2";

}

很简单o(_)o 哈哈。这里是说我们定义一个我们将要用到的消息变量。

2. Mediator里面响应发过来的消息:

message2 function processNotification(note:INotification):void {

            helloWorldProxy.createMessage(note.getBody() as String);

        }

处理不同的消息,唯一要改的就是message2这个命名空间,写该方法的时候,在mediator里面必须导入message2那个命名空间的包,看代码:

import flex.helloworld.notifications.message2;

好了。function processNotification(note:INotification)这些都是一样的,现在例如我们要接受message1的消息,那个接受消息的方法要怎么写,相信你已经会了。

如下所示:

message1 function processNotification(note:INotification):void {

            helloWorldProxy.createMessage(note.getBody() as String);

        }

是的,就这样第一种接受消息的方式处理完了。

 

现在说一下第二种方式响应相关的消息的解释:

第二种方式也是跟命名方式有关的,我们在Mediator里面接收消息message1的方法如下:

public function respondToMessage1():void {

            //。。。。。

        }

其中respondTo也是固定不变的,后面接着的就是定义好消息常量:

Public static const MESSAGE1 = “message1”;

是跟字符串message1相匹配的。但是这种方式还要定义一个消息常量类,把那些消息常量定义进去,具体的就不说了,可以去Fabricationgoogle上的官网是什么样的,有很多例子,下一个看看就知道了。我就只说我们用到的方式。

 

看看我们运行的程序吧:

 



 

点击以后,得到响应:在下面现实消息内容:

 



 

对了,我们发消息时在同一个模块内发消息是通过sendNotification()这个API的。

如果在不同的模块发消息,例如要从这个模块的flash文件模块发送到外部的另一个flash模块,则用到的是routeNotification()这个API具体的参数请自己查阅啦。

 

好了基于pureMVCFabrication框架其中一个方式的使用介绍就说完了。

 

  • 大小: 6.8 KB
  • 大小: 41.2 KB
  • 大小: 51.2 KB
  • 大小: 84.2 KB
  • 大小: 27.2 KB
  • 大小: 24.8 KB
  • 大小: 13 KB
  • 大小: 17.4 KB
分享到:
评论
3 楼 hay 2011-02-09  
flex_莫冲 写道
你好。关于这个例子,我有个问题想请教你。如果应用程序中有两个状态。默认状态是login。如下
</fx:Script>
<fab:states>
<s:State name="login"/>
<s:State name="main"/>
</fab:states>
    <s:Button click="this.currentState='main'" includeIn="login"/>
    <view:HelloWorldGroup id="helloWorldGroup" includeIn="main"/>
这样的话,在HelloWorldModuleMediator.as中的
public function get helloWorldGroup():HelloWorldGroup {
            return helloWorld.helloWorldGroup as HelloWorldGroup ;
        }
helloWorldGroup还是null。这样就会报错了。这个问题要怎么解决呢。希望你见到能给我答复。非常感谢。


当有两个状态的视图组件,属于动态绑定了。。 你获取动态渲染的组件对象不能直接这样写,他的官网有一个例子http://code.google.com/p/fabrication/wiki/ReflexiveMediatorRegistration

registerMediator(new ButtonStyleMediator(
   resolve(application).re("button[0-9]+")
));

你的父级Mediator最好也弄成动态组件对象渲染,这样就可以了
2 楼 flex_莫冲 2011-02-01  
你好。关于这个例子,我有个问题想请教你。如果应用程序中有两个状态。默认状态是login。如下
</fx:Script>
<fab:states>
<s:State name="login"/>
<s:State name="main"/>
</fab:states>
    <s:Button click="this.currentState='main'" includeIn="login"/>
    <view:HelloWorldGroup id="helloWorldGroup" includeIn="main"/>
这样的话,在HelloWorldModuleMediator.as中的
public function get helloWorldGroup():HelloWorldGroup {
            return helloWorld.helloWorldGroup as HelloWorldGroup ;
        }
helloWorldGroup还是null。这样就会报错了。这个问题要怎么解决呢。希望你见到能给我答复。非常感谢。
1 楼 flex_莫冲 2011-01-31  
非常感谢。这种好资料太少了。

相关推荐

    MVC++环境2005-2017全部一键安装包x86 x64

    **MVC++环境详解** 微软的Visual C++(通常简称为VC++)是用于开发Windows平台上C++应用程序的集成开发环境(IDE)。该环境自1993年首次发布以来,经历了多次重大更新,提供了丰富的功能,包括编译器、调试器、库...

    MVC++环境2005-2017全部一键安装包x86&x64

    **MVC++环境2005-2017一键安装包详解** MVC(Model-View-Controller)是一种广泛使用的软件设计模式,特别是在开发基于Web的应用程序时。MVC++是微软公司推出的C++编程框架,它集成了MVC模式,为Windows平台提供了...

    puremvc-js-multicore-framework-master

    《PureMVC JavaScript 多核框架详解》 PureMVC 是一个轻量级的、模型-视图-控制器(Model-View-Controller)框架,它最初是为Flash平台设计的,但随着时间的发展,已被移植到多种编程语言中,包括JavaScript。在本...

    PureMVC+Flex+BlazeDS+Spring+Hibernate.doc

    标题中的“PureMVC+Flex+BlazeDS+Spring+Hibernate.doc”指的是一项整合了多种技术的Web应用开发方案,这些技术包括PureMVC、Flex、BlazeDS、Spring和Hibernate。这篇文档可能是指导读者如何将这些技术结合在一起...

    跟我一步步搭建PureMVC+Flex+BlazeDS+Spring+Hibernate

    根据提供的文件信息,本文将详细介绍如何一步步搭建PureMVC+Flex+BlazeDS+Spring+Hibernate的技术栈。这个过程涉及到了多个技术领域的整合,包括前端的Flex开发、后端的Java开发以及数据库交互等多个方面。 ### 一...

    PureMVC+Flex+Jsp+Mysql实现用户登录注册

    标题 "PureMVC+Flex+Jsp+Mysql实现用户登录注册" 描述了一种基于特定技术栈构建用户登录注册系统的方案。这个系统利用了多种技术来完成前端、后端以及数据库交互的功能。以下是这些技术及其在系统中的作用: 1. **...

    spring boot+mvc+mybatis+netty-sokey.io+html+js实现简单即时通讯聊天系统

    项目采用整合spring boot+mvc+mybatis+netty-sokey.io+html+js实现简单的一对一聊天和聊天室多人聊天

    跟我一步步搭建+PureMVC+Flex+BlazeDS+Spring+Hibernate

    为了搭建一个基于PureMVC、Flex、BlazeDS、Spring和Hibernate的项目,我们需要遵循一系列详细的步骤,这些步骤涉及到安装和配置不同的软件组件、创建项目以及集成各个框架。下面是这个过程的知识点总结: 一、软件...

    spring jdbcTemplete+flex+pureMvc+cairngorm

    非常好的东西,喜欢的下载下来吧spring 3.0jdbcTemplete+flex4.6+pureMvc+cairngorm2.2.2+blazeds, 最新出炉,可以选择pureMvc和cairngorm2.2.2两种框架

    跟我一步步搭建 PureMVC+Flex+BlazeDS+Spring+Hibernate

    通过以上步骤,你将成功构建一个完整的PureMVC+Flex+BlazeDS+Spring+Hibernate RIA系统,实现前端与后端的无缝集成,提供高效的数据交换和复杂的业务处理能力。在实际开发中,你可能还需要考虑错误处理、安全性和...

    SpringMVC ---- HelloWorld ---- 代码

    SpringMVC ---- HelloWorld ---- 代码 SpringMVC ---- HelloWorld ---- 代码 SpringMVC ---- HelloWorld ---- 代码 SpringMVC ---- HelloWorld ---- 代码 SpringMVC ---- HelloWorld ---- 代码 SpringMVC ---- Hello...

    Flex实战-puremvc+java(spring+hibernate)实现增删改查操作

    标题中的“Flex实战-puremvc+java(spring+hibernate)实现增删改查操作”揭示了这个项目是关于使用Adobe Flex技术结合后端Java框架Spring和Hibernate来开发一个包含基本CRUD(Create, Read, Update, Delete)功能的...

    FLEX4+Gilead+BlazeDS+pureMVC+spring2.5 MVC+hibernate3.3+SLF4J+CXF2.3.0 以及相关插件

    标题中的"FLEX4+Gilead+BlazeDS+pureMVC+spring2.5 MVC+hibernate3.3+SLF4J+CXF2.3.0"涉及了多个关键技术和框架,这些都是在构建分布式、企业级Web应用程序时常用的技术组件。下面将逐一解析这些技术的核心概念和...

    spring4-mvc-gradle-xml-hello-world, Gradle + spring 4 MVC Hello World 示例( XML ).zip

    spring4-mvc-gradle-xml-hello-world, Gradle + spring 4 MVC Hello World 示例( XML ) Gradle --spring-4 MVC Hello Worldspring 4 MVC + JSP视图+ XML配置模板,使用Gradle构建工具。使用的###1. 技术Gradle 2.0...

    Flex pureMVC 资料例子打包

    5. **实例和例子**:压缩包中的“@pureMVC”可能包含了各种PureMVC的示例项目,如HelloWorld示例,用于展示如何创建一个简单的PureMVC应用。这些例子可以帮助我们理解PureMVC的各个组件如何协同工作,以及如何在实际...

    Flex puremvc 实例及说明(flex 4.6开发环境)

    在Flex 4.6开发环境中使用PureMVC,可以帮助开发者遵循经典的Model-View-Controller(模型-视图-控制器)架构,提高代码的可维护性和可扩展性。 **PureMVC简介** PureMVC是用AS3编写的轻量级框架,它将业务逻辑、...

    puremvc-swift-standard-framework-master_demo

    标题 "puremvc-swift-standard-framework-master_demo" 指向的是一个使用 Swift 语言实现的 PureMVC 标准框架的示例项目。PureMVC 是一个轻量级的、跨平台的、开源的 Model-View-Controller (MVC) 框架,它为软件...

    Flex PureMVC例子

    在“Flex PureMVC例子”中,我们可以看到如何在实际项目中应用PureMVC,以便更好地理解和学习其工作原理。 首先,PureMVC定义了四个主要角色:Model(模型)、View(视图)、Controller(控制器)和Proxy(代理)。...

Global site tag (gtag.js) - Google Analytics