2010-11-30 42 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