シングルトンパターン内に、すべてのアプリケーション全体ですべてのデータアクセスオブジェクトクラスと共有されるNetConnectionオブジェクトがあるとします。さて、あなたは画面に行き、何かの間違いなどを検索したいので、5000のレコードをロードするように頼みました。しかし今、あなたは自分が間違った画面にいて、実際には別の「エンティティ」からの5000のレコードが必要であることに気づきました。別の画面に移動して別のデータを要求できるように、データがここに到着するまで2分近く待つ必要がないようにするにはどうすればよいですか?ESCボタンをキー発信者として使用してみましたNetConnection.close()
イベントですが、実際には機能しません。空のイベントをディスパッチするだけで、呼び出しは引き続き返されます。サーバーに彼の仕事を続けないように頼むことはできないことは知っていますが、ESCなどを押した後、ActionScriptがその特定の呼び出しに煩わされないようにする方法を知りたいのですが、あなたの人生を続けてください。そして、サーバーがその呼び出しに応答するとき、バックグラウンドで、あなたがすでにそれをキャンセルすることに同意したので、私はそれを捨てるつもりです。
追伸:ESCボタンを聞いて、それを介して何らかのメソッドを呼び出す方法に疑いはありません。ユーザーがそのデータをもう受け取りたくないと判断したときに、何を呼び出すかを知りたいだけです。彼女は、アプリを閉じて再度開くことなく先に進みたいと考えています。
編集:
呼び出し後にResponderオブジェクトを破棄しようとしましたが、機能しませんでした。
public function call(command:String, f:Function, fault:Function, ...parameters):void{
var r:Responder = new Responder(f, fault);
this._Responder = r;
if(parameters.length == 0)
GATEWAY.call(command, _Responder);
else
GATEWAY.call(command, _Responder, parameters);
}
public function close():void{
_Responder = new Responder(function(obj:Object):void{}, function(obj:Object):void{});
//_Responder = null;
trace("Canceled");
}
ここで説明するコードを使用して、呼び出しを停止し、作成しNetConnection::call
た「呼び出し関数」の呼び出しを開始しました。したがって、この関数はクラススコープ内にあるレスポンダーを構築するので、呼び出しが行われ、ESCボタンが「閉じる」関数を呼び出した後でもアクセスできます。nullに設定して、再構築してみました。うまくいきませんでした。NetConnectionが呼び出しを行った後は、レスポンダーを変更できないと思います。