`

Flex+Java项目开发心得

    博客分类:
  • FLEX
阅读更多

一、花岗岩插件安装

  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) <gas3 outputdir="flex_src">

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

  2)<fileset dir="WebContent/WEB-INF/classes">

  <include name="com/gdtopway/tc/domain/*.class"/>

  </fileset>

  指定了要生成*.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文件中有用的内容

  <buildCommand>

  <name>com.adobe.flexbuilder.project.flexbuilder</name>

  <arguments>

  </arguments>

  </buildCommand>

  <natures>

  <nature>com.adobe.flexbuilder.project.flexnature</nature>

  <nature>com.adobe.flexbuilder.project.actionscriptnature</nature>

  <nature>org.eclipse.wst.common.project.facet.core.nature</nature>

  <nature>org.eclipse.jdt.core.javanature</nature>

  <nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>

  <nature>org.eclipse.jem.workbench.JavaEMFNature</nature>

  </natures>

  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,其中带有<application>标记)

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

  9.Flex Modules

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

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

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

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

  <mx:Script source="../../media/as/LayoutUtils.as"/>

  <mx:Script source="../../media/as/EventUtils.as"/>

  <mx:Script source="../../media/as/DataGridUtils.as"/>

  <mx:Script source="../../media/as/DateFormatUtils.as"/>

  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是最重要的一个文件,里面会引用其他文件

  <service-include file-path="remoting-config.xml" />

  <service-include file-path="messaging-config.xml" />

  <system>

  <redeploy>

  <enabled>true</enabled>

  <watch-interval>20</watch-interval>

  <watch-file>{context.root}/WEB-INF/flex/services-config.xml</watch-file>

  <watch-file>{context.root}/WEB-INF/flex/remoting-config.xml</watch-file>

  <watch-file>{context.root}/WEB-INF/flex/messaging-config.xml</watch-file>

  <touch-file>{context.root}/WEB-INF/web.xml</touch-file>

  </redeploy>

  </system>

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

  <!-- 非延时加载用此适配器 -->

  <adapter-definition id="java-adapter" class="flex.messaging.services.remoting.adapters.JavaAdapter" default="true"/>

  <destination id="attachmentDAO">

  <properties>

  <factory>springFactory</factory>

  <source>attachmentDAO</source>

  </properties>

  </destination>

  <source>里面的是spring里定义的ID,<destination id="XX">是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+Java开发(1).doc

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

    FlexBuilder与MyEclipse整合心得(java+flex)

    本篇文章主要探讨了如何将Adobe FlexBuilder与Eclipse平台中的MyEclipse整合,以便于开发Java和Flex混合应用。FlexBuilder是一款专门用于构建Flex(ActionScript和MXML)应用的集成开发环境(IDE),而MyEclipse则是...

    flex学习例子,本人学习过程中做的例子

    这个“flex学习例子”压缩包包含了作者在学习Flex过程中的实践项目,旨在帮助其他学习者通过实例来理解Flex的用法和功能。 1. Flex基础:Flex是一个开放源代码的开发框架,主要用于创建交互式、高性能的Web应用程序...

    Flex学习资料总结

    Flex是一种用于创建富互联网应用程序(RIA)的框架,主要由Adobe公司开发,它结合了MXML和ActionScript两种语言,提供了强大的用户界面构建工具。在本资料包中,你将找到一系列关于Flex学习的文档和资源,涵盖了从...

    Flex学习第一章

    8. **Flex Builder使用**:学习如何设置开发环境,创建新项目,编写和调试代码,以及优化性能。 9. **Flex应用生命周期**:理解Flex组件的创建、初始化、显示和销毁过程。 10. **自定义组件**:如果深入到源码层面,...

    Flex中文文档

    这篇博文链接(https://java-007.iteye.com/blog/168760)可能包含了博主对于Flex学习和实践的心得体会,或者是对Flex某些特性的深入解析。由于无法直接访问这个链接,我们将主要围绕Flex框架本身的知识点进行展开。...

    flex测试总结

    这篇博文可能是作者在进行一系列Flex应用测试后的心得体会和经验分享。 在描述中提到的“NULL”,可能意味着博客原文没有提供具体的描述信息,或者该字段在压缩包中为空。通常,这样的描述会包含一些关于博客内容的...

    Flex打印(转)

    标题“Flex打印(转)”可能指的是一个关于使用Adobe Flex技术进行打印功能开发的文章或教程。Flex是一种基于ActionScript 3.0的开源框架,用于构建富互联网应用程序(RIA)。在这个场景中,"转"可能意味着内容是作者...

    FlexUnit4熟悉与使用

    FlexUnit4 是一款针对ActionScript和Flex应用程序的单元测试框架,它的设计灵感来源于Java的JUnit。这个框架的主要目的是为了帮助开发者编写和运行针对Flex应用程序的自动化测试,确保代码的正确性和稳定性。 ...

    flex学习参考

    在IT行业中,Flex是一种用于构建富互联网应用程序(RIA)的开放源码框架,它由Adobe公司开发并维护。Flex以其强大的MXML和ActionScript语言,为开发者提供了构建交互式、高性能的用户界面的能力。本篇文章将围绕...

    Flex In Jsp

    felx嵌入jsp的demo,没有java代码,下载后直接在tomcat运行即可,我的博客《flex嵌入jsp开发心得》中的源码

    mate框架应用几点心得

    Mate框架是一种广泛应用于Java开发的轻量级框架,它的核心理念是模块化、松耦合,旨在提升开发效率,简化项目构建。在这个标题为“mate框架应用几点心得”的主题中,我们可以探讨几个关键的知识点: 1. **模块化...

    flex原创音乐网站(全站带后台)

    Flex原创音乐网站是一款基于Flash技术的在线音乐平台,由开发者...综上所述,Flex原创音乐网站融合了多项技术,包括Flex开发、音频处理、在线聊天、数据库管理和用户交互设计等,是一个全面展示Flex技术实力的项目。

    BlazeDS 开发资料

    在实际开发中,BlazeDS提供了Flex与Java之间的Remoting和Pub/Sub(发布/订阅)通信模式。Remoting允许Flex客户端直接调用服务器上的Java方法,而Pub/Sub则支持事件驱动的通信,使服务器可以主动推送数据到客户端,...

    android项目及说明

    4. **博文链接**:“https://java-flex.iteye.com/blog/852138”可能提供了项目的背景介绍、开发过程、遇到的问题和解决方案,或者是作者的一些开发心得,这将为理解项目提供额外的帮助。 【标签】:“源码”和...

    java试用期工作总结.doc

    试用期期间完成的工作还十分有限,简单列了一些:掌握java开发语言和环境,由于在校学习时主要是以.作为开发语言,所以在刚入职时通过一段时间学习并根本掌握了java开发技术。熟悉公司开发流程,熟悉cbp产品框架。...

    eclipse使用个人小结

    Eclipse 是一个功能强大且广泛应用于软件开发的集成开发环境(IDE)。本文将对 Eclipse 的一些常用功能和技巧进行总结,帮助开发者更好地使用 Eclipse 进行开发。 一、如何导入已有的 Web 工程 在 Eclipse 中,...

    display 使用心得

    在IT行业中,"display 使用心得"这一主题通常指的是与显示技术、前端开发或者特定编程库相关的使用经验分享。从描述中的“博文链接”来看,这可能是一篇关于个人使用display属性在网页布局或CSS(层叠样式表)中的...

    编译原理实验报告和源代码--山东大学

    2. **实验环境**:列出使用的操作系统、开发工具(如ANTLR、Flex、Bison等)、编程语言(如C++或Java)等信息。 3. **实验步骤**:详述如何构建编译器的各个阶段,包括编写词法分析器、语法分析器和语义分析器的源...

Global site tag (gtag.js) - Google Analytics