上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Red5+ActionScriptメモ:NetConnection#callの使い方

はまってしまったのでメモ。

NetConnectionのcallメソッド、実行直後に結果が出ていると思ったら大間違い。callの結果がすぐ戻ってくると期待してcallメソッドの直後にcloseを呼び出したら、callの結果が戻らないままcloseされてしまう。

function func1():void{
var nc:NetConnection = new NetConnection;
nc.connect("rtmp://ほげほげ");
nc.call('サーバ側メソッド',new Responder(func2,func3);
nc.close();
}

function func2(result:String){
Alert.show(result);
}

function func3(){}

何も考えずに(←自分)こんな感じでコーディングしてしまうと、func2で結果が出る前にncがクローズされるのでresultがnullになってしまう。

イベントリスナーで拾えないかなと思ってリファレンスを参照してみたが、
"NetConnection.Call.BadVersion"
"NetConnection.Call.Failed"
"NetConnection.Call.Prohibited"
こんなエラー関係のイベントしか拾えないっぽい。

しょうがないので、こんな感じでごまかしてみた。汚いコードだ・・・OTZ

private var nc:NetConnection = new NetConnection;

function func1():void{
nc.connect("rtmp://ほげほげ");
nc.call('サーバ側メソッド',new Responder(func2,func3);
nc.close();
}

function func2(result:String){
Alert.show(result);
nc.close(); ←ここに持ってきた
}

function func3(){}

できたらfunc1でfunc2の完了を待ちたいんだけど、Respnderが非同期でfunc2を呼び出してしまう模様。いい方法ないかな?



tag : ActionScript Red5


コメントの投稿

非公開コメント


カテゴリ


最新記事

月別アーカイブ

最新コメント

最新トラックバック









上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。