0

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

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

4

1 回答 1

2

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

于 2011-12-17T13:07:13.713 回答