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

本文详细介绍了如何使用FlashBuilder4.6和BlazeDS4来实现Cairngorm2项目,包括项目结构搭建、Java端数据调用、以及与Cairngorm的交互过程。通过示例代码展示了如何在Java端调用List数据,并成功在Cairngorm界面展示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[color=green]我使用的是Flash Builder 4.6和BlazeDS4;附件为Cairgorm2所需的类库和我写的HelloWorld源代码[/color]

[color=green]标准项目结构如图所示:[/color]

[img]http://dl.iteye.com/upload/picture/pic/116715/56bc74ce-8a69-3f09-8cc4-36226f5faf57.jpg[/img]

[color=green]调用Java端List成功后如图所示:[/color]
[img]http://dl.iteye.com/upload/picture/pic/116717/44541de0-c8ae-39da-9b83-2a85100e76ae.jpg[/img]
package com.demo.service;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class UserService {

public List getUserList() {
List resultList = new ArrayList();
for (int i = 1; i <= 10; i++) {
Map map = new HashMap();
map.put("id", i);
map.put("name", "name" + i);
map.put("age", 17 + i);
map.put("email", "China" + i + "@gmail.com");
resultList.add(map);
}
return resultList;
}
}

package com.user.command
{
import com.adobe.cairngorm.commands.ICommand;
import com.adobe.cairngorm.control.CairngormEvent;
import com.user.event.UserEvent;
import com.user.service.UserProxy;

import mx.collections.ArrayCollection;
import mx.rpc.IResponder;
import com.user.model.UserModelLocator;
import mx.controls.Alert;

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

//执行调用
public function execute(event:CairngormEvent):void
{
var userEvent:UserEvent=UserEvent(event);
var userService:UserProxy=new UserProxy(this);
userService.queryStudentList();
}

//更新模型
public function result(data:Object):void
{
var userList:ArrayCollection=data.result as ArrayCollection;
UserModelLocator.getInstance().userList=userList;
}

public function fault(info:Object):void
{
Alert.show("Fail Error ");
}
}
}

package com.user.service
{
import com.adobe.cairngorm.business.ServiceLocator;
import mx.rpc.IResponder;
public class UserProxy
{
private var responder:IResponder;
private var service:Object;
public function UserProxy(responder:IResponder)
{
//获取远程对象
this.service=ServiceLocator.getInstance().getRemoteObject("UserService");
this.responder=responder;
}
public function queryStudentList():void
{
//调用方法
var call:Object=this.service.getUserList();
call.addResponder(responder);
}
}
}

<?xml version="1.0" encoding="utf-8"?>
<s:Panel xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
width="400" height="300" creationComplete="init()">
<fx:Script>
<![CDATA[
import com.user.event.UserEvent;

import mx.collections.ArrayCollection;
import com.adobe.cairngorm.control.CairngormEventDispatcher;
[Bindable]
public var userList:ArrayCollection;
private function init():void{

var userEvent:UserEvent=new UserEvent();
CairngormEventDispatcher.getInstance().dispatchEvent(userEvent);
}
]]>
</fx:Script>
<fx:Declarations>
<!-- 将非可视元素(例如服务、值对象)放在此处 -->
</fx:Declarations>
<s:DataGrid x="0" y="0" width="100%" height="100%" dataProvider="{userList}"
requestedRowCount="10">
<s:columns>
<s:ArrayList>
<s:GridColumn dataField="id" headerText="ID"></s:GridColumn>
<s:GridColumn dataField="name" headerText="姓名"></s:GridColumn>
<s:GridColumn dataField="age" headerText="年龄"></s:GridColumn>
<s:GridColumn dataField="email" headerText="邮箱"></s:GridColumn>
</s:ArrayList>
</s:columns>
</s:DataGrid>
</s:Panel>

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
xmlns:service="com.user.service.*"
xmlns:controller="com.user.controller.*"
xmlns:view="com.user.view.*"
minWidth="955" minHeight="600">
<fx:Script>
<![CDATA[
import com.user.model.UserModelLocator;
[Bindable]
public var userModel:UserModelLocator=UserModelLocator.getInstance();
]]>
</fx:Script>
<fx:Declarations>
<!-- 将非可视元素(例如服务、值对象)放在此处 -->
<!--实例化-->
<service:UserServiceLocator id="userServiceLocater1"/>
<!--实例化-->
<controller:UserController id="userController1"/>
</fx:Declarations>
<!--导入组件-->
<view:UserListView x="100" y="100" userList="{userModel.userList}"/>
</s:Application>


cairngorm3:[url]http://opensource.adobe.com/svn///opensource/cairngorm3/[/url]
cairngorm2:[url]http://www.adobe.com/devnet/flex/articles/cairngorm_pt1.html[/url]
[url]http://sourceforge.net/adobe/cairngorm/wiki/Downloads/[/url]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值