Remoting服务是是属于LCDS当中的一部分。使用时是将后端的Java类在remoting-config.xml配置文件当中描述,然后通过Flex将remoting-config.xml配置文件当中的别名当作远程对象进行调用。
remoting-config.xml文件格式如下代码所示。
<?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>
<destination id="HelloRemoting">
<properties>
<source>com.flexstu.remoting.Hello</source>
</properties>
</destination>
</service>
其中上面代码中使用了destination标签描述了Java类的位置以及被远程调用时使用的别名。代码如下所示。
<destination id="HelloRemoting">
<properties>
<source>com.flexstu.remoting.Hello</source>
</properties>
</destination>
在Flex中,通过ActionScript 3.0的类库和MXML标签调用远程对象。这些ActionScript类和MXML分别位于mx.rpc.remoting包和mx.rpc.remoting.mxml包下。最常用的ActionScript 3.0远程调用类为RemoteObject类。RemoteObject类的常用属性和方法如表14.5所示。
表 RemoteObject常用的属性和方法
名称 | 分类 | 说明 |
makeObjectsBindable | 属性 | Boolean类型,是否将返回匿名对象强制邦定到对象。 |
source | 属性 | 字符串类型标明客户端的值。 |
RemoteObject | 方法 | 构造方法。参数为destination是String类型,远程调用的对象在remoting-config.xml中描述的别名。 |
在Flex中可以使用<mx:RemoteObject>标签替代直接只用类库调用远程对象,<mx:RemoteObject>使用代码如下所示。
<mx:RemoteObject
concurrency="multiple或者single或者last"
destination="没有缺省值."
id="没有缺省值"
endpoint="没有缺省值."
showBusyCursor="false或者true"
makeObjectsBindable="false或者true"
/>