关于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
package { import flash.events.EventDispatcher; public class model extends EventDispatcher { public function model() { } } }
<?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>