刚来现在的公司就开始接手别人做的项目,来公司之前从来没接触过Flex,从头开始学,不过之前有过web基础,所以看起来也不困难,但是对于Flex项目的环境搭建,一直处于迷茫状态,最近公司又接了一个和之前项目相同架构的项目,所以趁此机会,向web框架靠拢一下,毕竟不能脱离这个大环境,好了,废话不多说,开始!
1.做项目之前首先把环境备好,jdk1.6+tomcat7.0+MyEclipse10(FlashBuilder插件)
2.如果上述环境没搭建好,那我也无能为力了。好了,小伙伴们,看下面,正式开始!
打到Flash视图,新建Flex项目
填写项目名称,下一步
【应用程序服务器类型】选择java;【远程对象访问服务】选择BlazeDS;【目标运行时】之前建过的就选择就行了(这里使用的是tomcat),没有的新建后选择;【BlazeDS WAR文件】选择你准备好的文件
这里着重说一下【上下文目录】,【内容文件夹】,【输出文件夹】,好多人建项目后,出各种错误,大多数是因为这几个地方填写不对导致的,【上下文目录】:项目名称;【内容文件夹】:WebContent(这里呢,应该是和项目名称一样的,这里在建完项目后再修改);【输出文件夹】:WebContent或者和我似的在下面再建一个文件夹,以方便管理
下一步
完成
好了,建完之后的项目目录如下图
这样,我们就开始前后台通信
首先在src目录下新建Test.java文件,简单的一个hello函数;
<span style="font-size:14px;">public class Test {
public String hello(){
return "HelloFlex";
}
}
</span>
然后在WebContent-WEB-INF-flex目录下的message-remote.xml中添加如下代码;这个文件的作用就是通信用的,blazeds的核心文件
红色部分,是添加的
<span style="font-size:14px;"><?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>
<!--sorce标签中添加对应的java文件-->
<span style="color:#ff0000;"><destination id="db">
<properties>
<source>Test</source>
</properties>
</destination></span>
</service></span>
编写前端,CSDN.MXML文件
<span style="font-size:14px;"><?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"
creationComplete="init(event)">
<fx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.events.FlexEvent;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
protected function init(event:FlexEvent):void
{
db.hello();
}
protected function db_resultHandler(event:ResultEvent):void
{
var str = event.result as String;
Alert.show(str);
}
protected function db_faultHandler(event:FaultEvent):void
{
Alert.show("failed");
}
]]>
</fx:Script>
<fx:Declarations>
<!-- destination填写的事message-remote.xml文件中定义的destination的id-->
<s:RemoteObject id="db" destination="db" result="db_resultHandler(event)" fault="db_faultHandler(event)" />
</fx:Declarations>
<s:Button label="hello" />
</s:Application></span>
好了,部署到tomcat,运行,测试一下,不过一般会报如下错误,怎么解决呢,这就到了我在建项目的时候说过,【内容文件夹】要修改成项目名称的时候了。
具体步骤:选中项目,右键属性--flex服务器--内容文件夹改为项目名称即可
调试成功