我正在尝试开发一个Flex Mobile / PHP应用程序,但我在使用AsyncToken时遇到了一些麻烦……它不是只返回一个基本字符串吗?
例如..。我只想从我的请求中返回一个简单的字符串结果--现在,它将从实现的方法中返回一个基本的输出字符串。后端部分工作(PHP),我已经做了所有的工作...这给我带来了一些问题:
import mx.rpc.AsyncResponder;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
protected function button_clickHandler(event:MouseEvent):void
{
loginResult.token = user_service.login();
loginResult.token.addResponder(new AsyncResponder(onResult,onFault));
}
public function onResult(event:ResultEvent, token:Object):void
{
// what would i do here??
}
public function onFault(event:FaultEvent,token:Object):void
{
txtResult.text = event.fault.faultDetail;
}这很简单-任何建议,或建议肯定会有所帮助!谢谢!
发布于 2011-12-17 21:07:14
很简单。ResultEvent#result属性包含远程服务返回的值。您需要做的就是将它转换为正确的类型(因为它默认情况下是一个对象)。
例如,处理返回字符串的服务方法:
public function onResult(event:ResultEvent):void {
var s:String = event.result as String;
}其他类型也是如此:
var a:Array = event.result as Array;或者更复杂的自定义类:
var instance:MyClass = event.result as MyClass;请注意,最后一个示例仅适用于AMF remoting;您必须在客户端和服务器端具有相同的类定义;并且必须通过在AS类定义上使用[RemoteClass(alias="net.riastar.MyClass")]元数据标记来让它们知道彼此的存在。您必须如何在服务器端处理此问题,这取决于服务器端使用的语言。
https://stackoverflow.com/questions/8538008
复制相似问题