`

flex_cairngorm_Mvc_HelloWorld

    博客分类:
  • flex
阅读更多
package event
{
	import com.adobe.cairngorm.control.CairngormEvent;

	public class MyEvent extends CairngormEvent
	{
		public static const ACTION:String="ACTION";
		public var message:String;
		public function MyEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false)
		{
			trace("event");
			super(type, bubbles, cancelable);
		}
		
	}
}
 

我没用service跟 delegates 他两好像只是为了与后台服务了,大概意思就是

控制myControl注册了command(注册了监听器),

view层当你发出事件时,交给 command 去处理,

command会改变Model 里边的数据

(因为Model与view绑定在一起,所以改变了model里边的数据,

package commad
{
	import com.adobe.cairngorm.commands.ICommand;
	import com.adobe.cairngorm.control.CairngormEvent;
	
	import event.MyEvent;
	
	import model.MyModel;

	public class Mycommand implements ICommand
	{
		public function Mycommand()
		{
		}

		public function execute(e:CairngormEvent):void
		{
			if(e is MyEvent){
				var ep:MyEvent=e as MyEvent;
				var myModelLocator:MyModel=MyModel.getInstance();
				myModelLocator.products=ep.message;
			}else{
				throw new Error;
			}
			
			
		}
		
	}
}
 

view层数据也改变了)

package model
{
	import com.adobe.cairngorm.model.IModelLocator;
	import com.adobe.cairngorm.*;
	[Bindable]
	public class MyModel implements IModelLocator
	{
		private static var instance : MyModel
		public var products : String
		public function MyModel()
		{
			
			if ( instance != null )
          {
          	trace("error");
             throw new CairngormError(
                CairngormMessageCodes.SINGLETON_EXCEPTION, "MyModel" );
          }
          instance = this;
		}
		
		
	   public static function getInstance() : MyModel 
       {
       	  trace("model");
          if ( instance == null )
              instance = new MyModel();
              
          return instance;
        }
     
     }


	
}
 
package MyControl
{
	import com.adobe.cairngorm.control.FrontController;
	import event.MyEvent;
	import commad.Mycommand;
	public class MyControl extends FrontController
	{
		public function MyControl()
		{
			trace("control constractor is called");
			super();
			addCommand(MyEvent.ACTION,Mycommand);
		}
		
	}
}
 
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:MyControl="MyControl.*">
	<MyControl:MyControl>
		
	</MyControl:MyControl>
	<mx:VBox>
		
	
	<mx:Button click="dispather()">
		
	</mx:Button>
	<mx:Script>
		<![CDATA[
			import model.MyModel;
			import event.MyEvent;
			import com.adobe.cairngorm.control.CairngormEventDispatcher;
			private var i:int;
			public function dispather():void{
//				new MyModel();
				var myevent:MyEvent=new MyEvent(MyEvent.ACTION);
				myevent.message=i+"";
				
				myevent.dispatch(); //两个方法都可以
//				CairngormEventDispatcher.getInstance().dispatchEvent(myevent);

				i++;
			}
		]]>
	</mx:Script>
	<mx:Text text="{model.MyModel.getInstance().products}">
		
	</mx:Text>
	</mx:VBox>
</mx:Application>
 

 

分享到:
评论
1 楼 escape_2007 2010-06-17  
不错,不错,简单易懂.

相关推荐

    Flex+.Net+Cairngorm+Fluorine的HelloWorld演示

    这个“Flex+.Net+Cairngorm+Fluorine的HelloWorld演示”旨在帮助开发者理解如何将这些技术整合在一起,实现跨平台的通信,并掌握Cairngorm框架的应用。 Flex 是一种基于ActionScript和MXML的开源框架,由Adobe提供...

    Cairngorm2/3 框架 烟水晶 HelloWorld 源代码案例

    在这个"Cairngorm2/3 框架 烟水晶 HelloWorld 源代码案例"中,开发者将展示如何使用Cairngorm框架创建一个简单的Flex应用。首先,你需要了解以下步骤: 1. **初始化项目**: 创建一个新的Flex项目,并设置Cairngorm...

    flex3_java 教程

    HelloWorld程序 - **创建Flex项目**:在FlexBuilder中新建一个Flex项目。 - **编写代码**:使用MXML(Flex的标记语言)和ActionScript 3.0编写简单的“Hello World”程序。 - **编译与运行**:通过FlexBuilder编译...

    flex-超好的flex学习资料

    为了使读者快速上手,书中提供了首个Flex项目——“HelloWorld”的创建步骤,通过这个简单的实例,读者可以初步了解Flex项目的结构,以及如何编写基本的Flex代码,实现界面元素的布局和事件响应。 三、Flex组件与...

    flex完全自学手册

    HelloWorld示例 “Hello World”是编程学习中的经典入门项目,本书也以此为例,帮助读者快速上手Flex的基本语法和工作流程。通过创建一个简单的Flex项目,读者可以理解如何构建用户界面、编写ActionScript代码以及...

    Flex入门文档 -王一松

    HelloWorld示例 - **第一个Flex程序**:通过一个简单的“Hello World”示例,初学者可以快速上手Flex的基本语法和结构。这有助于理解Flex的应用程序是如何组织和运行的。 #### 4. 可视化页面组件 - **UI控件介绍...

    跟我StepByStep学FLEX教程------王一松.pdf

    - **Hello World示例**:通过创建一个简单的“Hello World”程序,读者可以熟悉Flex项目的创建过程,并了解基本的Flex标记语言(MXML)语法。 #### 三、FLEX界面设计与交互 - **可视化页面组件**:介绍Flex中常用的...

    跟我StepByStep学FLEX教程-王一松.pdf

    3. HelloWorld示例:作为学习编程语言或框架的标准入门程序,HelloWorld展示了如何创建一个最简单的Flex应用程序,通常是让文本“Hello, World!”显示在屏幕上。 4. 可视化页面组件:Flex框架提供了一系列预制的UI...

    flex + java教程

    - 在 Flex 中,HelloWorld 示例涉及创建一个简单的用户界面,并显示文本 "Hello World"。 - 这个示例帮助开发者熟悉 Flex 的基本语法和布局。 ### 4. 可视化页面组件 - **Flex 提供了丰富的组件库**,如按钮、...

    StepByStep学FLEX教程.pdf

    - **Hello World程序**:通过一个简单的“Hello World”示例介绍如何使用Flex创建基本的应用程序。 - **可视化页面组件**:详细探讨了Flex中的各种用户界面(UI)组件,如按钮、文本框等,并教授如何布局这些组件以...

    flex 入门教程

    - **Cairngorm简介**:Cairngorm是Flex中常用的一个MVC框架,用于构建结构清晰、易于维护的应用程序。 - **组成部分**:了解Cairngorm框架的各个组成部分,如ModelLocator、Command等。 - **环境准备**:搭建...

    FLEX教程-FLEX教程

    HelloWorld 示例 - **目标**: 通过创建一个简单的 Flex 应用程序来熟悉 Flex 的基本结构和语法。 - **步骤**: - 创建一个新的 Flex 项目。 - 编写基本的 MXML 代码以显示“Hello World”文本。 - 运行项目并在...

    Flex教程-王一松

    - **Hello World示例**:这是初学者的第一个项目,通过简单的“Hello World”示例来熟悉Flex项目的创建过程及其基本语法结构。 #### 2. Flex界面设计与组件 - **可视化页面组件**:Flex提供了一系列丰富的UI组件,...

    跟我StepByStep学FLEX教程------王一松

    HelloWorld示例 - **MXML代码结构**:通过创建一个简单的MXML文件,实现基本的用户界面布局。 - **运行应用**:在Flex Builder中编译并运行该应用,理解MXML和ActionScript的基本交互。 #### 4. 可视化页面组件 ...

    跟我StepByStep学FLEX

    #### HelloWorld - **第一个程序**:通过创建一个简单的“Hello World”程序来熟悉FLEX的基本语法结构。 - **代码实现**:使用MXML(一种基于XML的语言)编写UI布局,并结合ActionScript实现交互逻辑。 ### UI组件...

Global site tag (gtag.js) - Google Analytics