云自无心水自闲

天平山上白云泉,云自无心水自闲。何必奔冲山下去,更添波浪向人间!
posts - 288, comments - 524, trackbacks - 0, articles - 6
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理
Flex是一个面向服务的框架, 借用了异步完成标记(Asynchronous Completion Token)设计模式, 代码以异步的方式运行.
此模式将用户的操作完成信号以及数据以异步的方式返回给用户,
这种做法的效率比较高, 用户不需要同步等待运行结果. 可以在服务运行的同时进行其他操作.
使用ACT模式时, 需要将服务返回的动作和数据绑定到一个异步的处理操作.
ACT必须在服务调用前进行指定. 服务调用时,用户可以进行其他操作, 当服务结束, 用户使用ACT接收响应并进行相应的处理.
当调用HTTP Service, RemoteObject, WebService时, Flex会返回一个数据服务调用(Data Service Call)的实例.
你可以使用 webService.send()返回的调用对象(Call Object)来进行结果处理. 你可以在调用对象中添加信息,
并在结果事件的处理函数中通过event.call得到调用对象.这就是ACT的实现机制. 代码举例如下:

<mx:HTTPService id="MyService" url="" result="myHandler(event)" />

<mx:Script>
<![CDATA[

function storeCall()
{
// Create a variable called call to store the instance
//
 of the service call that is returned.
var call = MyService.send();
// Add a variable to the call object that is returned.
//
 You can name this variable whatever you want.
call.marker = "option1";

}

// In a result event handler, execute conditional
//
 logic based on the value of call.marker.
function myHandler(event)
{
var call = event.call
if (call.marker == "option1"{
//do option 1
}

else

}

]]
>
</mx:Script>
在调用服务(MyService.send())时, 返回了调用对象 call
可以给调用对象添加信息 call.marker = "option1";
在服务完成的处理函数中可以使用 event.call 获得调用对象, 从而获得信息(call.marker).


只有注册用户登录后才能发表评论。


网站导航: