创建Flex Project工程
本文采用Flex和Java 放置在同一工程中的方式,根据向导提示创建工程,没有什么复杂的,稍微留心就可以,尤其是Flash Builder4.5,已经消除了之前设置某些参数无效的bug。
1. 工程基本信息,其中FlexSDK可以根据自己的开发需要选择;
2. Java部分的设置
Tips:Java source folder用于放置Java代码的文件夹,名称可以根据自身习惯设置;
Target runtime 配置好的Tomcat,此处必须选一个,否则无法进行创建;
Context root
用于设置将哪些URL请求通过Tomcat转发到Web应用,此处必须与工程名相同;
Content folder 这是最终编译后的容器目录,blazeds.war文件将会发布到该目录下的WEB-INF下的flex目录中,此处需跟Context root 的设置一样,
否则在使用RemoteObject与Java进行通信时会报错,目前还没找到原因,若有明白人,望指点一下;若开发环境使用MyEclipse,将文件名设置为
WebContent,可以自动部署;
Output folder 用于存放Flex编译后的swf和html等文件存放的路径,若为了编译文件的整齐,可以选择放在Content folder\bin等一个单独文件夹中,
因为习惯问题我设置为一样的;
3. Flex部分的设置
Tips:Main source folder用于放置Java代码的文件夹,名称可以根据自身习惯设置;
Main application file
默认运行的swf对应的代码文件;
Output folder url
程序运行的主链接;
生成的工程结构如图所示:
Flex与Java通信的配置
1.示例后台Java类
在"Demos/java_src”文件夹下添加com.Demos.DemoServices类,其完整代码如下
package com.Demos; public class DemoServices { public String testRemoteServices(String var1) { return "I love the life" + var1; } }
2.示例前端Flex应用
修改"Demos/flex_src”文件夹下添加Demo.mxml文件,其完整代码如下:
<?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" minWidth="955" minHeight="600"> <fx:Script> <![CDATA[ import mx.rpc.events.FaultEvent; import mx.rpc.events.ResultEvent; //用于返回结果正确时的处理事件 private function method1_resultHandler(event:ResultEvent):void { testResult.text = event.result.toString(); } //用于返回结果错误时的处理事件 private function method1_faultHandler(event:FaultEvent):void { } private function button1_clickHandler(event:MouseEvent):void { var testResults:String = testBtn.label; demoServices.testRemoteServices(testResults); } ]]> </fx:Script> <fx:Declarations> <s:RemoteObject destination="com.Demos.DemoServices" id="demoServices"> <s:method name="testRemoteServices" result="method1_resultHandler(event)"/> </s:RemoteObject> </fx:Declarations> <s:VGroup paddingTop="100" horizontalAlign="center" width="100%"> <s:Button id="testBtn" label="测试通信" click="button1_clickHandler(event)"/> <s:TextInput id="testResult"/> </s:VGroup> </s:Application>
3.通信配置
代码编写完成后,首先将"Tomcat7.0.12\webapps\blazeds\WEB-INF”文件夹拷贝替换"Demos\Demos\WEB-INF;然后需要修改位于
"Demos\Demos\WEB-INF\flex”文件夹中remoting-config.xml文件,为其添加以下代码:
<destination id="com.Demos.DemoServices"> <properties> <source>com.Demos.DemoServices</source> </properties> </destination>
flash Builder eclipse 回复英文
Flash Builder 安装之后myeclipse 会被汉化,用着非常不爽,恢复英文的办法:
在myeclipse.ini 最后加上 -Duser.language=en,就可以了。