由于自己用的纯AS3编写的工程!
在默认情况下FluorineFx,配置出来,所返回的结果都是基于Flex,mx包下面的数据类型!
无奈纯AS3下面接收不了服务端方法所返回的数据类型!一般情况下都是返回的!ArrayCollection对象!
除非,返回的是字符数据!否则我们的纯AS3一般是接收不了的!
研究了半天,发现只要修改一下FluorineFx的相关配置就可以,让他返回多维数组类型,这样我们的AS3就可以接收了!
具体修改是:
把WEB-INF目录下的services-config.xml文件。
代码
<?xml version="1.0" encoding="utf-8" ?>
<services-config>
<services>
<service-include file-path="remoting-config.xml" />
</services>
<channels>
<channel-definition id="my-amf" class="mx.messaging.channels.AMFChannel">
<endpoint uri="http://{server.name}:{server.port}/{context.root}/Gateway.aspx" class="flex.messaging.endpoints.AMFEndpoint"/>
<properties>
<legacy-collection>true</legacy-collection>//把这里加上,就ok了!
</properties>
</channel-definition>
</channels>
</services-config>
<services-config>
<services>
<service-include file-path="remoting-config.xml" />
</services>
<channels>
<channel-definition id="my-amf" class="mx.messaging.channels.AMFChannel">
<endpoint uri="http://{server.name}:{server.port}/{context.root}/Gateway.aspx" class="flex.messaging.endpoints.AMFEndpoint"/>
<properties>
<legacy-collection>true</legacy-collection>//把这里加上,就ok了!
</properties>
</channel-definition>
</channels>
</services-config>
<legacy-collection>true</legacy-collection>
//就是他了,把他加上,或者取消注释!那么返回的数据就都是数组类型,即使这样
public ArrayCollection arrycoll()
{
ArrayCollection array = new ArrayCollection();
return array ;
}
照样返回一个多维数组!
o(∩_∩)o 哈哈!很爽哦!记录一下,提醒自己!