`
harry9888
  • 浏览: 67487 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
文章分类
社区版块
存档分类
最新评论

采用Cairngorm的开发步骤

阅读更多
1、编写控制器
package com.forbeauty.store.control
{
import com.adobe.cairngorm.control.FrontController;


/**
* @version $Revision: $
*/
public class ShopController extends FrontController
{
public function ShopController()
{
initialiseCommands();
}

public function initialiseCommands() : void
{

}
}

}

2、编写ModelLocator
package com.forbeauty.store.model
{
import com.adobe.cairngorm.model.ModelLocator;

[Bindable]
public class MenuModelLocator implements ModelLocator
{
private static var menumodelLocator : MenuModelLocator;

public static function getInstance() : MenuModelLocator
        {
         if ( menumodelLocator == null )
         {
         menumodelLocator = new MenuModelLocator();
         }
     
         return menumodelLocator;
        }
       
        public function MenuModelLocator()
        {
           if ( menumodelLocator != null )
           {
           throw new Error( "Only one ShopModelLocator instance should be instantiated" );
           }
        }
       
        public var xmlData:String;
}
}
其中包括需要处理或使用的数据,并使用单例模式

3、编写Service.mxml
<?xml version="1.0" encoding="utf-8"?>

<cairngorm:ServiceLocator
xmlns:mx="http://www.adobe.com/2006/mxml"
xmlns:cairngorm="http://www.adobe.com/2006/cairngorm">
<!--
    <mx:RemoteObject id="productService" destination="productServiceImpl"
showBusyCursor="true">
    </mx:RemoteObject>

    <mx:RemoteObject id="creditCardService" destination="creditCardServiceImpl"
showBusyCursor="true">
    </mx:RemoteObject>
-->
    <mx:HTTPService id="menuDelegate"
resultFormat="e4x"
showBusyCursor="true"
url="../datas/menus.xml">
</mx:HTTPService> 

</cairngorm:ServiceLocator>

4、编写Command

package com.forbeauty.store.command
{
import mx.rpc.IResponder;
import com.adobe.cairngorm.commands.ICommand;
import com.adobe.cairngorm.control.CairngormEvent;
import com.forbeauty.store.model.MenuModelLocator;
import com.forbeauty.store.business.MenuDelegate;
import mx.rpc.events.ResultEvent;
import mx.rpc.events.FaultEvent;
import mx.controls.Alert;
import mx.collections.ICollectionView;
import mx.collections.Sort;
import mx.collections.SortField;
import mx.utils.ArrayUtil;
import flash.events.Event;

public class MenuDataCommand implements ICommand, IResponder
{
public function MenuDataCommand()
{
}

public function execute( event : CairngormEvent ): void
{
if( MenuModelLocator.getInstance().xmlData == null )
{
    var delegate : MenuDelegate = new MenuDelegate( this );
    delegate.getMenus();
}
else
{
Alert.show( "Products already retrieved!" );
return;
}
}
public function result( event : Object ) : void
{
Alert.show((event as ResultEvent).result.toString());
}
public function fault( event : Object ) : void
{
var faultEvent : FaultEvent = FaultEvent( event );
Alert.show( faultEvent.toString() );
Alert.show( "Can not get menus" );
}
}
}

5、编写Event

package com.forbeauty.store.event
{
import flash.events.Event;
import com.adobe.cairngorm.control.CairngormEvent;

public class GetMenuEvent extends CairngormEvent
{
public static var EVENT_GET_MENUS : String = "getMenus";

/**
* Constructor.
*/
public function GetMenuEvent()
{
super( EVENT_GET_MENUS );
}
    
     /**
     * Override the inherited clone() method, but don't return any state.
     */
override public function clone() : Event
{
return new GetMenuEvent();
}
}
}

6、在View中发送事件
var event:CairngormEvent=new CairngormEvent(GetMenuEvent.EVENT_GET_MENUS);

CairngormEventDispatcher.getInstance().dispatchEvent(event);
分享到:
评论

相关推荐

    Flex+J2EE实例(cairngorm+blazeDS+hibernate+spring)完整版本

    前端采用cairngorm框架,后台 采用hibernate+spring 每个部署 步骤,附详细 图文解释。旨在 采用 一种快速开发 项目架构。 该包中 ,含 详细 文档,开发图文步骤,数据库 ,和代码。lib 下 已经包含所有项目所需...

    flex开发系列书籍:Cairngorm_MVC_框架

    开发环境的搭建涉及以下步骤: 1. 安装 JDK。 2. 安装 Eclipse IDE。 3. 安装 Flex Builder 插件。 4. 安装服务器(例如 Tomcat)。 入门示例通常会展示如何创建一个新的 Flex 项目,引入 Cairngorm 库,设置视图...

    Flex常用教程及库

    Cairngorm是Flex社区广泛采用的一个轻量级MVC框架,它简化了大型Flex项目的架构设计。在提供的压缩包中,有两个Cairngorm相关的库文件——Cairngorm.swc和CairngormEnterprise.swc,它们分别是Cairngorm框架的核心库...

    基于RIA的在线多媒体教学资源网站的设计与实现

    - **前台设计**:使用Flex开发完成,采用Cairngorm框架以提高开发效率和代码的可维护性。 - **后台管理**:负责处理用户请求和数据库操作,采用PHP或Java等语言开发。 ##### 3. 技术选型 - **Flex**:作为主要的...

    Java-Flex-air

    #### 一、AIR工程实例搭建步骤详解 **1. 开发环境** ##### 1.1 客户端 客户端使用Adobe AIR (Adobe Integrated Runtime) 和 Flex 技术栈进行开发。Flex 是一款强大的用于构建和部署富互联网应用程序(RIA) 的框架,...

    flex环境搭建技术指导

    【Flex环境搭建技术指导】 Flex,全称Adobe Flex,是一种...通过使用Cairngorm这样的框架,开发者可以更高效地组织代码,提高开发和协作的效率。对Flex初学者来说,了解这些基础知识和整合技术是非常重要的学习步骤。

    FLEX+Java开发(1).doc

    【描述】: "这份文档详细介绍了使用FLEX和Java进行开发的相关配置和步骤,非常适合初学者作为入门资料。" 【标签】: "FLEX,Java" 【内容】: 本文档主要探讨了Flex与Java的集成开发,特别是使用Flex、BlazeDS和...

    开源的云操作系统环境搭建

    CAT77—WEBIM企业沟通系统采用了一套复杂且高效的架构,包括CatWindows+Cairngorm+SSH+JPA+Socket等技术。其中: - **CatWindows**:作为系统的前端界面,提供了用户友好的操作界面。 - **Cairngorm**:是一种Flex...

    原创:实现view(mxml)和代码分离的好方法

    ### 实现View (MXML) 和代码分离的好方法 在Flex3开发过程中,随着...总之,对于Flex3开发人员而言,采用Code Behind模式是一种非常实用且高效的方法来实现MXML与代码的分离,有助于提高开发效率,降低后期维护成本。

Global site tag (gtag.js) - Google Analytics