0

我正在使用 HTTPService 组件来调用 web 服务。我在 resulthandler 中得到结果,但结果类型是 objectProxy。我想将它们转换为我使用 Flash 构建器的数据/服务生成的值对象。在此处输入图像描述 我无法将 ConnectUserAccess(如附图所示)作为值对象访问。

var hs:HTTPService = new HTTPService();
var url:String = ConfigManager.getProperty("user.project.acess");
 hs.method = "GET";
 hs.url = url;
 hs.resultFormat = "object";
 var params:Object = {};
 params["User_Name"] = "madhur";
 hs.addEventListener(ResultEvent.RESULT, getProjectsAccessHandler);
 hs.addEventListener(FaultEvent.FAULT, getProjectFaultHandler);
 hs.send(params);

private function getProjectsAccessHandler(event:ResultEvent):void{
 var connect:ConnectUserAccess = event.result.ConnectUserAccess;
}
4

2 回答 2

2

您必须进行手动转换。只有 RemoteObject (AKA AMF) 会自动将您的服务器端对象转换为 ActionScript 对象。使用 HTTPService 不会进行转换。

您应该能够像这样进行手动“演员”:

private function getProjectsAccessHandler(event:ResultEvent):void{
 var connect:ConnectUserAccess = event.result.ConnectUserAccess as ConnectUserAccess;
}
于 2011-06-21T13:11:30.287 回答
0

我终于让它工作了。我犯的错误是创建 HTTPservice 对象,即使我已经使用 flash builder 的数据/服务功能生成了服务类。我只需要使用生成的服务类来调用 Httpservice。现在我想要的只是从服务中获取事件。生成的服务返回我可以使用 callResponder.token 使用的 mx.rpc.AsyncToken。请参阅下面的代码以获得更清晰的信息。

import services.release.Release;
[Bindable]
private var userCR:CallResponder;
[Bindable]
private var release :Release;
private function init():void{
userCR = new CallResponder;
userCR.addEventListener(ResultEvent.RESULT, getUserProject);
userCR.addEventListener(FaultEvent.FAULT,getUserProjectFaultHandler);
release = new Release;
}
protected function userProjectAccess(User_Name:String, User_GUID:String):void
{
userCR.token = Release.UserProjectAccess(User_Name, User_GUID);
}

在需要的地方调用这个函数 userProjectAccess。

于 2011-06-22T12:41:14.380 回答