AsyncToken返回基本字符串?

时间:2011-12-16 17:38:48

标签: php flex mobile adobe asynctoken

我正在尝试开发一个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;
}

这非常简单 - 任何建议或建议肯定会有所帮助!谢谢!

1 个答案:

答案 0 :(得分:1)

够容易。 ResultEvent#result属性包含远程服务返回的值。您需要做的就是将其强制转换为正确的类型(因为默认情况下它是一个Object)。

例如,处理返回String的服务方法:

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远程处理;你必须在客户端和服务器端具有相同的类定义;并且您必须通过在AS类定义上使用[RemoteClass(alias="net.riastar.MyClass")]元数据标记让他们知道彼此的存在。如何在服务器端处理这个问题取决于那里使用的语言。