事件的流转控制
来源:互联网 发布:网络综合布线工程 编辑:程序博客网 时间:2024/04/30 05:22
FLEX是基于事件驱动的,在一个复杂的模型中事件的流转也会经常给人以困扰.这里用一个简单的小例子,说明一下,阻塞事件,以及跨越事件广播的两个小方法.
这个小例子中,是一个panel里放了一个button,panel和button都有对应的click事件,默认情况下,是点击Button时,button和Panel的事件都会同时响应的.但现在我们有这样两种需求:
1:点击Button时,要求响应Panel的事件,Button的事件不响应;
2:点击Button时,要求响应Button的事件,Panel的事件不响应;
- <?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>
- 事件的流转控制
- 系统调用过程的控制流转移
- android 事件流转机制
- 妙用ognl表达式来控制工作流的分支流转
- DirectUI的消息流转
- DirectUI的消息流转
- DirectUI的消息流转
- tigase的message流转
- tigase的message流转
- javascript的键盘控制事件
- javascript的键盘控制事件
- javascript的键盘控制事件
- JQuery的键盘控制事件
- Button的selected事件控制
- 基于事件的时序控制
- 控制浏览器全屏的事件
- java的IO流转载
- jvm线程状态的流转
- Qt for Visual C++ 编译过程
- VC获取当前程序文件的路径,文件名以及路径+文件名
- ActionScript 3.0 优化
- iLBC编解码相关知识
- oo里一些废弃的用法
- 事件的流转控制
- 非技术型话题
- C++组合框控件使用方法
- .net操作PDF的一些资源(downmoon收集)
- 揪出键盘上的“老鼠”
- java垃圾收集算法
- ASP读取文本并在特定的字符后面写入一段字符串
- Microsoft .NET Framework 2.0对文件传输协议(FTP)操作(上传,下载,新建,删除,FTP间传送文件等)实现汇总1
- 导出DataSet 到多个Excel工作薄