2010-11-30 63 views
2

我正在使用BlazeDS在Flex中發送消息。 UI組件裏面,我定義像下面的一個製片人:如何識別觸發MessageFaultEvent的原始消息

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

我在裏面faultHandler想知道我是如何能夠識別什麼樣的信息導致錯誤。因爲看起來沒有辦法獲得對原始信息的引用。

這是如何構建和發送消息的代碼片段。

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

謝謝!

回答

0

看起來生產者對象看起來不像消息對象的引用。您可以通過擴展生產者類並覆蓋故障功能並分派包含該消息的自定義事件來添加此功能。

一些須藤代碼:

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 2010-12-01 03:58:08