2010-11-30 9 views
2

私はBlazeDSを使ってFlexでメッセージを送信しています。私は、エラーの原因をメッセージを識別することができるよどのように私はfaultHandlerの内側に思っていたMessageFaultEventをトリガーする元のメッセージを特定する方法

<mx:Producer id="producer" 
    destination="chat" 
    fault="faultHandler(event);"/> 

:UIコンポーネントの内部では、私は以下のようなプロデューサーを定義しました。元のメッセージへの参照を取得する方法はないようです。

これは、メッセージがどのように構築されて送信されるかのコードスニペットです。

 private function sendMessage():void { 
      var message:AsyncMessage = new AsyncMessage(); 
      message.body = userName.text + ": " + input.text; 
      producer.send(message); 
     } 

ありがとうございます!

答えて

0

プロデューサオブジェクトがメッセージオブジェクトの参照を保持しているように見えません。これを追加するには、プロデューサクラスを拡張し、fault関数をオーバーライドし、メッセージを含むカスタムイベントをディスパッチします。

いくつかのsudoコード:

public class MyProducer extends Producer 
{ 

    public function MyProducer(){ 
     super() 
    } 


    override public function fault(errMsg:ErrorMessage, msg:IMessage):void 
    { 
     var evt:MyMessageEvent = new MyMessageEvent(msg) 
     dispatch(evt); 
     super(errMsg, msg); 
    } 

} 

次にあなたがする必要があるすべてはMyMessageEventイベントをリッスンし、あなたのメッセージを取得することです。

+0

ありがとうございます!私はそれを試してみましょう! – Jingwei

+0

ありがとうございました! – Jingwei

関連する問題