Как сопоставить objectProxy, возвращаемый HTTPService для объекта value - PullRequest
0 голосов
/ 21 июня 2011

Я использую компонент HTTPService для вызова веб-службы. Я получаю результат в обработчике результатов, но тип результата - objectProxy. Я хочу преобразовать их в мои объекты-значения, которые я сгенерировал, используя Data / Service of Flash Builder. enter image description here Я не могу получить доступ к 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;
}

Ответы [ 2 ]

2 голосов
/ 21 июня 2011

Вам нужно будет выполнить ручное преобразование.Только RemoteObject (AKA AMF) автоматически преобразует объект на стороне сервера в объект ActionScript.Использование HTTPService не сделает преобразование.

Вы должны быть в состоянии выполнить ручное «приведение», например:

0 голосов
/ 22 июня 2011

Я наконец заставил это работать.Ошибка, которую я делал, создавала HTTPservice Object, хотя я сгенерировал класс обслуживания, используя функцию Data / Service во Flash Builder.Мне только нужно было использовать сгенерированный класс обслуживания, чтобы позвонить в Httpservice.Теперь все, что я хочу, это вернуть событие из службы.Сгенерированный сервис возвращает мне mx.rpc.AsyncToken, который я могу использовать с помощью callResponder.token.Чтобы получить больше ясности, см. Приведенный ниже код.

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 везде, где требуется.

...