浏览 2334 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-08-12
FLEX是基于事件驱动的,在一个复杂的模型中事件的流转也会经常给人以困扰.这里用一个简单的小例子,说明一下,阻塞事件,以及跨越事件广播的两个小方法.
这个小例子中,是一个panel里放了一个button,panel和button都有对应的click事件,默认情况下,是点击Button时,button和Panel的事件都会同时响应的.但现在我们有这样两种需求:
1:点击Button时,要求响应Panel的事件,Button的事件不响应;
代码这段代码是入门级的,就不多做讲解了:
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" creationComplete="initApp();" backgroundColor="black"> <mx:Style source="event.css"/> <mx:Script> <![CDATA[ private function initApp():void{ button.addEventListener(MouseEvent.CLICK,buttonClickHandler,true); mypanel.addEventListener(MouseEvent.CLICK,panelClickHandler); mypanel1.addEventListener(MouseEvent.CLICK,panel1ClickHandler); button1.addEventListener(MouseEvent.CLICK,button1ClickHandler); } private function panelClickHandler(event:MouseEvent):void{ msg1.text="panel click!"; } private function buttonClickHandler(event:MouseEvent):void{ msg2.text="button click!"; } private function panel1ClickHandler(event:MouseEvent):void{ msg3.text="panel click!"; msg4.text=""; } private function button1ClickHandler(event:MouseEvent):void{ msg3.text=""; msg4.text="button click!"; event.stopPropagation(); } private function doubleClickHanlder(event:MouseEvent):void{ msg1.text=""; msg2.text=""; msg3.text=""; msg4.text=""; } [Bindable] [Embed(source="thumb.jpg")] private var butIcon:Class; ]]> </mx:Script> <mx:Label text="任意处双击,清除响应结果...." color="white" /> <mx:HBox width="100%" height="100%" horizontalAlign="center" verticalAlign="middle" doubleClickEnabled="true" doubleClick="doubleClickHanlder(event);"> <mx:Panel width="300" height="300" id="mypanel" horizontalAlign="center" verticalAlign="middle" title="只响应Panel事件:"> <mx:Button id="button" icon="{butIcon}" labelPlacement="bottom" label="click me" /> <mx:ControlBar> <mx:HBox> <mx:TextInput id="msg1" width="130"/> <mx:TextInput id="msg2" width="130"/> </mx:HBox> </mx:ControlBar> </mx:Panel> <mx:VRule height="100%"/> <mx:Panel width="300" height="300" id="mypanel1" horizontalAlign="center" verticalAlign="middle" title="只响应Button事件:"> <mx:Button id="button1" icon="{butIcon}" labelPlacement="bottom" label="click me" /> <mx:ControlBar> <mx:TextInput id="msg3" width="130"/> <mx:TextInput id="msg4" width="130"/> </mx:ControlBar> </mx:Panel> </mx:HBox> </mx:Application>
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-09-08
对嘛写的?
|
|
返回顶楼 | |