03.06.2005
Flash Remoting AS2コンポーネントの使い方:基礎

仕事で Flash Remoting を使った際にAS2対応のコンポーネントを利用したんだけど、AS1対応のリファレンスしかなくて苦労したので、今後のためにAS2対応のコンポーネントの基本的な使い方をメモ。
- 必要なRemotingクラスをインポート
- Remotingの接続先と利用するRemoteサービスを呼び出すための Service クラスのインスタンスを作る
- Remoteサービスからのレスポンスを受け取るための PendingCall クラスのインスタンスを作る
- 正常終了、異常終了のそれぞれのレスポンスを受け取る関数を設定するための RelayResponder クラスのインスタンスを作る
- 正常終了時、異常終了時の処理を行うための関数を作成する
[ 簡単な例 ]
// Service クラスのインポート
import mx.remoting.Service;
// PendingCall クラスのインポート
import mx.remoting.PendingCall;
// RelayResponder クラスのインポート
import mx.rpc.RelayResponder;
// 正常終了時のレスポンスは ResultEvent のインスタンスとして返ってくる
import mx.rpc.ResultEvent;
// 異常終了時のレスポンスは FaultEvent のインスタンスとして返ってくる
import mx.rpc.FaultEvent;
// NetConnectionデバッガを使う場合は NetDebug クラスをインポート
import mx.remoting.debug.NetDebug;
// デバッガを初期化、起動
NetDebug.initialize();
// Remotingが置かれているURLを指定
var remoteURL:String = "http://localhost/flashservices/gateway";
// 利用するRemoteサービスへのパスを指定(パスの書き方はAS1の時と変わらないので、詳しくはリファレンス参照)
var remoteServicePath:String = "cf.com.flashremoting.HelloUser";
// Service クラスのインスタンスの生成
var remoteService:Service = new Service(remoteURL, null, remoteServicePath);
// PendingCall のインスタンス生成。Remoteサービスの呼び出し。ここでは sayHello() を呼び出している
var pc:PendingCall = remoteService.sayHello('Hello, World!!');
// 結果を受け取る RelayResponder のインスタンス生成。引数に結果を処理する関数名をとる
pc.responder = new RelayResponder(this, "sayHello_Result","sayHello_Fault");
// 正常終了時に呼び出される関数
function sayHello_Result(myResult:ResultEvent){
theMessage.text = myResult.result;
}
// 異常終了時に呼び出される関数
function sayHello_Fault(myFault:FaultEvent){
theMessage.text = myFault.fault.faultstring;
}
大体こんな感じ。後は、自分で使いやすいようにクラス化するなりなんなりして使えばよし。細かい説明が間違っていたらゴメンナサイ。// Service クラスのインポート
import mx.remoting.Service;
// PendingCall クラスのインポート
import mx.remoting.PendingCall;
// RelayResponder クラスのインポート
import mx.rpc.RelayResponder;
// 正常終了時のレスポンスは ResultEvent のインスタンスとして返ってくる
import mx.rpc.ResultEvent;
// 異常終了時のレスポンスは FaultEvent のインスタンスとして返ってくる
import mx.rpc.FaultEvent;
// NetConnectionデバッガを使う場合は NetDebug クラスをインポート
import mx.remoting.debug.NetDebug;
// デバッガを初期化、起動
NetDebug.initialize();
// Remotingが置かれているURLを指定
var remoteURL:String = "http://localhost/flashservices/gateway";
// 利用するRemoteサービスへのパスを指定(パスの書き方はAS1の時と変わらないので、詳しくはリファレンス参照)
var remoteServicePath:String = "cf.com.flashremoting.HelloUser";
// Service クラスのインスタンスの生成
var remoteService:Service = new Service(remoteURL, null, remoteServicePath);
// PendingCall のインスタンス生成。Remoteサービスの呼び出し。ここでは sayHello() を呼び出している
var pc:PendingCall = remoteService.sayHello('Hello, World!!');
// 結果を受け取る RelayResponder のインスタンス生成。引数に結果を処理する関数名をとる
pc.responder = new RelayResponder(this, "sayHello_Result","sayHello_Fault");
// 正常終了時に呼び出される関数
function sayHello_Result(myResult:ResultEvent){
theMessage.text = myResult.result;
}
// 異常終了時に呼び出される関数
function sayHello_Fault(myFault:FaultEvent){
theMessage.text = myFault.fault.faultstring;
}







