Flex+Java项目开发心得

一、花岗岩插件安装

  1.把flexTasks.jar,flexTasks.tasks 复制到Flex sdks\3.0.0\lib下

  2.把org.granite.gas3_1.0.0文件夹,复制到eclipse\plugins

  2.删除eclipse\configuration\org.eclipse.update文件夹

  3.启动eclipse。

  4.把build.xml、env.properties复制到项目根目录下。

  5.修改env.properties里的FLEX_HOME、FLEX_TASKS_JAR 为实际路径

  (FLEX_HOME是flex sdk路径 FLEX_TASKS_JAR 默认放在FLEX_HOME下的\lib下)

  6.修改APP_NAME 为部署后的web上下文名称。

  7.修改build.xml里的generate.as3任务

  例如:

  1)

  指定了生成的*.as的输出路径

  2)

  

  


  指定了要生成*.as的java包路径。

  8.运行build.xml

  9.修改生成的XXBase.as文件的基类。

  从“implements IExternalizable”修改为“extends HibernateBean”

  同时在as引用“import net.digitalprimates.persistence.hibernate.HibernateBean;”

  如果没有这个swc,请先引用“dpHibernate_flexLibrary.swc”

  二、Flex项目与Java项目的结合

  1.新建一个Java项目,把.actionScriptProperties、.flexProperties、.project文件复制到项目根目录下,然后refresh项目。

  .project文件中有用的内容

  

  com.adobe.flexbuilder.project.flexbuilder

  

  


  


  

  com.adobe.flexbuilder.project.flexnature

  com.adobe.flexbuilder.project.actionscriptnature

  org.eclipse.wst.common.project.facet.core.nature

  org.eclipse.jdt.core.javanature

  org.eclipse.wst.common.modulecore.ModuleCoreNature

  org.eclipse.jem.workbench.JavaEMFNature

  


  2.右键点击properties查看项目属性,会发现多了关于flex的属性。

  3.flex和java是分开编译的,各自独立。

  4.Java Build Path:java的.class文件输出到{项目根目录}/{WebContent}/WEB-INF/classes

  5.flex Build Path-〉Source Path:

  源文件路径(存放as文件和mxml文件):一般在{项目根目录}/flex_src

  Output folder( swf文件输出路径):一般在{上下文路径}/bin

  Output folder URL(调试用的URL路径):http://localhost:7001/{上下文路径}/bin

  6.flex Build Path-〉Library Path:

  一般包括

  1)flex的sdk

  2)被flex项目引用的swc文件的路径,一般放在{项目根目录}/flex_libs下面

  (swc文件与as文件的相互关系,有点像war文件与java文件的相互关系,可以看作一个打包了的目录)

  7.Flex Compiler指定项目使用的flex sdk及编译选项

  一般地 要修改Compiler arguments

  -services "F:\JavaTools\IDE\eclipse3.3_WTP\workspace\FSPowerAudit(Flex)\FSPowerAudit/WEB-INF/flex/services-config.xml" -locale en_US

  前一个参数指定services-config.xml的绝对路径,后一个参数指定语言选项。services-config.xml用于配置flex对java后台的调用。

  8.Flex Applications

  用于指定项目中的flex主程序({项目名}.mxml,其中带有标记)

  一个项目可以有多个flex主程序,但其中只有一个是默认的。

  9.Flex Modules

  用于指定flex主程序可以加载的模块(Modules),凡是要加载的模块都必须手工在这里添加,添加的时候要指定为哪个flex主程序添加,以及模块编译后的swf文件的名称和路径

  10.flex Server指定flex程序部署的Root URL和Context root。

  三、flex代码与java代码的交互。

  1.一般地mxml文件存放标记,as文件存放脚本。公共的脚本一般会抽出来,放在公共的文件夹下,然后在mxml文件中引用,例如:

  

  

  

  

  2.java代码由flex代码调用。

  1)flex代码先在本地编译好成为swf,然后部署到web容器中。

  2)flex代码通过amf格式,调用java代码,java代码先编译好,对应的class文件存放在web容器中{应用程序上下文}/WEB-INF/Classes文件夹下,供由flex编译出来的swf文件调用。

  3)方法类的java对象通过RemoteObject的方式调用;RemotObject和java代码中的方法类对应,这些方法类的方法有时候会接收实体类作为参数,在RemoteObject中使用java的实体类要通过代理类。一般地一个java实体类对应一个同名的as文件(as类),这个as类的字段和java实体类的字段一一对应。这些java实体类的as代理类可以通过手工编写,也可以通过花岗岩插件自动生成。

 3.要使用flex的RemoteObject有几个配置文件需要配置。

  1)一般地这几个配置文件放在{上下文路径}/WEB-INF/flex下,安装flex builder后建立flex project eclipse会自动生成这几个文件,复制过去就ok了。

  2)service-config是最重要的一个文件,里面会引用其他文件

  

  

  

  

  true

  20

  {context.root}/WEB-INF/flex/services-config.xml

  {context.root}/WEB-INF/flex/remoting-config.xml

  {context.root}/WEB-INF/flex/messaging-config.xml

  {context.root}/WEB-INF/web.xml

  


  


  3)要使用remoteObject,remoting-config.xml有几个地方需要修改

  

  

  

  

  springFactory

  attachmentDAO

  


  


  里面的是spring里定义的ID,是flex文件里使用的ID

  4)remoteObject的调用例子:

  private function getAuditType():void

  {

  var service:RemoteObject =new RemoteObject();

  service.destination = "billService";

  service.getAduitCode.addEventListener(FaultEvent.FAULT,faultEventHandler);

  service.getAduitCode.addEventListener(ResultEvent.RESULT, getAuditTypeResult);

  service.getAduitCode();

  }

  private function getAuditTypeResult(event:ResultEvent):void

  {

  dsDgAuditType = event.result;//成功时候往往是为datagrid提供dataprovider

  }

  1)新建一个remoteObject

  2)为这个RemoteObject增加事件侦听:FaultEvent.FAULT失败时候的处理、ResultEvent.RESULT成功时候的处理。

  3)为事件侦听建立相应函数。成功时候往往是为datagrid提供dataprovider,失败的时候往往是打印错误信息。

  四、部署调试

  启动web容器,启动flex Application

你可能感兴趣的:(FLEX)