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>
分享到:
相关推荐
flex-messaging-core-4.7.3.jar 最新版,下载了好长时间才下载下来,亲测可用!
在flex-messaging-core.jar中,包含了一些关键组件和接口,例如: 1. **MessageBroker**: 这是Flex消息传递系统的中心,它管理消息的路由,调度和处理。MessageBroker实例化并配置了各种服务,如HTTP、HTTPS、RTMP...
尽管Google Code已不再接受新的项目,但许多有价值的项目,如flex-iframe-1.4.6,仍然可以在其存档中找到。 在Flex框架中,开发者通常使用ActionScript来创建富互联网应用程序(RIA)。然而,有时需要在Flex应用...
在Forex-Flex-EA-V4.91中,开发者可能融合了海龟策略的一些关键要素,如利用移动平均线判断趋势,设置相应的入场和出场条件,以及运用风险管理策略来控制潜在损失。此外,EA可能还引入了其他技术分析工具和自适应...
flex-messaging-core jar包
flex-messaging-proxy.jarflex-messaging-proxy.jarflex-messaging-proxy.jarflex-messaging-proxy.jar
flex-messaging-common
flex-messaging-common.jar
flex-messaging-remoting.jarflex-messaging-remoting.jarflex-messaging-remoting.jarflex-messaging-remoting.jar
flex-messaging-core-amf1.7
flex-messaging-opt.jarflex-messaging-opt.jarflex-messaging-opt.jarflex-messaging-opt.jar
1. **flex-messaging-core.jar**:这是Flex Messaging框架的基础库,提供了核心的基础设施和服务。它包含AMF(Action Message Format)编解码器,用于高效地序列化和反序列化数据,以及基本的消息传递机制。AMF是一...
Java开发案例-springboot-47-整合Mybatis-Flex操作SQL-源代码+文档.rar Java开发案例-springboot-47-整合Mybatis-Flex操作SQL-源代码+文档.rar Java开发案例-springboot-47-整合Mybatis-Flex操作SQL-源代码+文档.rar...
flex-messaging-common-1.0.jar 资源共享,有需要其他jar包的可以在评论留言,看到后我会陆续上传。
flex-messaging-opt-1.0.jar 资源共享,有需要其他jar包的可以在评论留言,看到后我会陆续上传。
标题 "FLEX提高篇--------AIR应用程序的托盘及托盘菜单的制作" 指向的是一个关于Adobe Integrated Runtime (AIR)的高级教程,重点是如何在Flex应用中创建和使用系统托盘图标以及与之相关的托盘菜单。Flex是基于...