0

HTTPService コンポーネントを使用して Web サービスを呼び出しています。resulthandler で結果を取得していますが、結果の型は objectProxy です。Flash Builder の Data/Service を使用して生成した値オブジェクトに変換したいと考えています。ここに画像の説明を入力 値オブジェクトとして 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

私はついにそれを機能させました。私が行っていた間違いは、Flash Builder の Data/Service 機能を使用してサービス クラスを生成したにもかかわらず、HTTPservice オブジェクトを作成していたことです。生成されたサービス クラスを使用して 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 に答える