关于Flex的事件捕获有关问题,请兄弟们帮小弟我解决,谢过~

关于Flex的事件捕获问题,请兄弟们帮我解决,谢过~~~~
问题是这样的,我自己写了一个model类,它继承自EventDispatcher,然后在主mxml中放置一个button和一个panel,要求点击button后,在button的响应函数中new 出model的对象m,然后用m发送MouseEvent.CLICK消息,panel当然会在整个程序的初始化时添加这个消息的监控器,如果panel接收到这个消息,则提示panel clicked。
  但是现在panel不能接收到这个消息,稍微改变程序如下:
  1.在m上添加消息监控器,m能接收这个消息; 
  2.在主mxml中随意放置一个控件,利用它发送消息,panel能接收。
  现在我的要求是使用m对象发送消息,然后panel来接收消息。 请各位大大相助!!!!万分感激~~~~
  下面是代码:
model.as
Java code
package 
{
    
    import flash.events.EventDispatcher;

    public class model extends EventDispatcher
    {
        public function model()
        {        
        }    
    }
    
}


test.mxml
XML code

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="initApp()" xmlns:local="*">

<mx:Script>
    <![CDATA[
        import mx.controls.Alert;
        import flash.events.Event;       
        internal function initApp():void
        {
            p1.addEventListener(MouseEvent.CLICK,pClick,true);       
        }
        internal function pClick(evn:Event):void
        {
            Alert.show("panel clicked","caution");
        }
        internal function click():void
        {
            var m:model = new model();
            m.dispatchEvent(new Event(MouseEvent.CLICK));       
        }
    ]]>
</mx:Script>
    <mx:Panel id="p1" x="320" y="71" width="250" height="200" layout="absolute">
    </mx:Panel>
    <mx:Button id="b1" x="148" y="163" label="Button" click="click()" width="98" height="35"/>
</mx:Application>




------解决方案--------------------
因为m.dispatchEvent(new Event(MouseEvent.CLICK)); 
m是个局部变量而已,跟Panel 没有什么层次关系,所以m派发的事件panel是监听不到的。

这样改不知道,你可以接受不:
p1.dispatchEvent(new Event(MouseEvent.CLICK)); 
用panel去派发事件,当然他很容易接受到。

注:如果你还想把model当参数在event里面,建议自定义一个event。把model存放在event里面
这样的好处,model不用再继承EventDispatcher来派发事件,继承上以后可能会更灵活
------解决方案--------------------
感觉LZ化简为烦了,直接p1.dispatchEvent(new Event(MouseEvent.CLICK));
 
m.dispatchEvent(new Event(MouseEvent.CLICK));该事件的目标M;

在概念上,到事件目标的此往返行程被划分为三个阶段:捕获阶段包括从根到事件目标节点之前的最后一个节点的行程,目标阶段仅包括事件目标节点,冒泡阶段包括回程上遇到的任何后续节点到显示列表的根。

所以按LZ代码来看,从视图根到M再从M到视图的根,唯一可以触发的是视图根节点上的事件吧!!