Professional Documents
Culture Documents
一.引
很多人在帖子和群中问到过一些关于建立 Flex+LCDS(FDS)工程的问题,由于操作上的东西,很
难简单说清楚,于是写了一个简单的教程(本来很早就答应过的,结果被 newfish 逮住做东西,加上公
司的事,一直抽不出时间哈,现在想换换头脑,偷乐一下懒哈,各位别跟 newfish 大大说),帮助大家
入门,其实这些东西都是在 LCDS 的 sample 中包含了的(当然,sample 只是包含源码)。
二.介绍
1. Flex 是什么?
……
2. LCDS 是什么?
LCDS ( LiveCycle Data Service )之前叫做 FDS ( Flex Data Service ),他是基于 java
(也有 ColdFusion 版的)后端的数据服务工程,功能包括映射 Java 对象到 Flex 对象(包括调
用 Java 类的方法)、RTMP(Real Time Message Protocol)、代理、服务端生成 PDF 等等功
能,详细请参考 LCDS 里的说明。官方有下载,需要注册会员(免费)。
3. Java 是什么?
……
三.准备
1. 下载开发环境:
Eclipse 3.3 + FlexBuilder3 beta2 插件版 +MyEclipse 6.0 +Lcds + Tomcat 5 和以上
(官方都有下载,或者 google 里搜一搜哈)
2. 安装:
略
四.入门教程
1. 新建 FlexLCDS 工程
File -> new -> Flex Project …
注:以下设置绝大多数都可以在项目属性中可以修改。
1). 向导界面 1
2). 向导界面 2
3). 向导界面 3
放心这些设置都可以在以后修改。
4). 新建完成的项目结构看起来是这样的
2. 用 MyEclipse 添加 Web 容器
之前说到了,MyEclipse 是很好用的 J2EE 的开发插件,其中就包含了部署功能。我们可以抛开
烦琐的手动部署,交由 MyEclipse 完成吧,当然,首先得让你的 FlexLCDS 工程变成为 J2EE
的 Web 工程。
1). 向导界面 1
注意:不要点快了,把这里的 Create web.xml 取消,这样就不会覆盖 LCDS 创建的 web.xml
文件
3. 部署 FlexLCDS 工程
有了 MyEclipse,那么你就不用手动的部署你的项目了,可以简单的通过
点击工具栏上的这个图标
1). 部署向导 1
注意:(如果你的列表中没有服务器,那么就自己建一个)
2). 新建部署 Web 应用服务器
注意:如果是 MyEclipse6.0 ,则会自带一个 Tomcat 服务器。如果不是 6.0 ,那么点 Edit
server connectors…自己添加一个 tomcat。
4. 修改一下项目的访问路径
打开项目的属性,在这里,我们可以重新修改项目编译和发布的配置,包括先前向导里的设置
修改 output folder url
为什么要这么做?
这样每次发布都会自动将编译的最终 swf 文件直接发布至 WebRoot\bin 目录下,而下面的
output folder url 则会在我们启动和调试项目时,直接请求这个路径(这跟发布无关,只是我
们在开发过程中会方便些)
6. 启动服务器
稍等片刻,等到服务器完全启动后继续下面的操作
7. 运行访问
注:如果之前的 Output folder url 配置正确,那么会自动的弹出访问页面, DEBUG 时也是一
样。
五.简单的 RemoteObject
1. 什么是 RemoteObject?
顾名思义,即远程对象。这里指的就是在 Flex 中获取 Java 里的对象。有什么用呢?这样 Flex 可
以更加简单的获取服务端的数据,比如你在 Java 中有个方法进行了数据查询,取出的结果是
Array 类型,那么你可以很容易通过 Flex 里的 RemoteObject 访问到该类,并调用该方法,最
后返回的数据是 Flex 也兼容的 Array 对象。
2. 新建 Java 类
File -> new ->other(如果你没在列表中看到 java class 的话)
1). 新建向导 1
2). 向导 2
注意:别忘记了你设定的 java 源码根目录路径,如果对 java 不熟悉的话,这里我就不解释了
照着做吧。
3). 编写如下代码
package com.test;
2). 改写其代码如下
<?xml version="1.0" encoding="UTF-8"?>
<service id="remoting-service"
class="flex.messaging.services.RemotingService">
<adapters>
<adapter-definition id="java-object"
class="flex.messaging.services.remoting.adapters.JavaAdapter"
default="true"/>
</adapters>
<default-channels>
<channel ref="my-amf"/>
</default-channels>
<destination id="FirstJavaClassRemoteObject">
<properties>
<source>com.test.FirstJavaClass</source>
<scope>application</scope>
</properties>
</destination>
</service>
说明:一个 destination 指定的就是一个 RO 对象,他的 id 就是在 Flex 中 RO 请求的
destination,source 指的是这个 Java 类的路径
4. 编写 mxml 来请求 RO
1). 打开 MyFirstLCDS.mxml 编写代码如下
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute">
<mx:Script>
<![CDATA[
import mx.rpc.events.ResultEvent;
import mx.controls.Alert;
private function callRO(str:String):void{
firstRO.sayHello(str);
firstRO.addEventListener(ResultEvent.RESULT,getROResult);
}
2).OK,保存好后,用之前的方法来运行一下看看?
RemoteObject 的简单教程完