Flex自定义事件的一个重要用途是能够把子容器中的信息传递到父容器中。
parent.mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:son="son.*" creationComplete="init();">
<mx:Script>
<![CDATA[
import mx.controls.Alert;
import events.DataChangeEvent;
private function init():void{
//mybt.addEventListener(DataChangeEvent.name,onChange);
this.addEventListener(DataChangeEvent.name,onChange);
}
private function onChange(e:DataChangeEvent):void{
Alert.show(e.test);
}
]]>
</mx:Script>
<son:son x="146" y="132" id="mybt" DataChange="onChange(event)"/>
</mx:Application>
son.mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:Form xmlns:mx="http://www.adobe.com/2006/mxml" width="400" height="300">
<mx:Metadata>
[Event(name="DataChange", type="events.DataChangeEvent")]
</mx:Metadata>
<mx:Script>
<![CDATA[
import events.DataChangeEvent;
private function Change():void{
var e:DataChangeEvent = new DataChangeEvent("test", "DataChange",true);
this.dispatchEvent(e);
}
]]>
</mx:Script>
<mx:Button label="Button" click="Change()"/>
</mx:Form>
DataChangeEvent.as
package events
{
import flash.events.Event;
public class DataChangeEvent extends Event
{
public var test:String;
public static var name:String="DataChange";
public function DataChangeEvent(test:String,type:String,bubbles:Boolean=false)
{
super(type,bubbles);
this.test=test;
}
override public function clone():Event{
return new DataChangeEvent(type,test);
}
}
}
其中<son:son x="146" y="132" id="mybt" DataChange="onChange(event)" />中的DataChange="onChange(event) "相当于mybt.addEventListener(EnableChangeEvent.ENABLE_CHANGED, onChange);
相关知识点:
dispatchEvent()
dispatchEvent()方法需要用一个参数指定需要发布的事件对象,发布事件时会通知该事件的所有监听者,并执行监听者指定的事件处理函数。
addEventListener()
addEventListener()方法为监听者指定事件处理函数。
默认情况下,捕获功能处于关闭状态,一般没有必要进行捕获跟踪。事件只在bubbles 属性为true 时才进行冒泡,可以冒泡的事件包括:change、click、doubleClick、keyDown、keyUp、mouseDown、 mouseUp。其他自定义事件如果想要冒泡需要设定bubbles为true(默认为false)。如本例中,button监听了DataChangeEvent事件,Application也监听了DataChangeEvent事件,由于bubbles设为true,当button按下之后,button触发了事件之后,Application也会触发。如果bubbles为false,就只有button触发事件(这时只有通过继续分发事件才能使Application触发,继续分发就会涉及到自定义事件需要复写clone方法)。
clone()
clone()方法返回一个新的 Event 对象,它是 Event 对象的原始实例的副本。通常您不需要调用 clone();当您重新调度事件,即调用 dispatchEvent(event)(从正在处理 event 的处理函数)时,EventDispatcher 类会自动调用它。 如果没有复写clone方法,就会调用父类的clone方法,返回父类的event实例,会产生类型不匹配的错误。
分享到:
相关推荐
### Flex自定义事件详解 Flex 是一款用于构建和部署跨平台桌面应用与移动应用的开源框架,它基于Adobe Flash Platform。在Flex应用开发过程中,事件处理机制是非常重要的一个环节,而自定义事件则是这一机制中的...
### 二、Flex自定义事件 #### 1. 为什么需要自定义事件 Flex的内置事件(如 MouseEvent 和 Event)可能不足以满足所有交互需求。自定义事件允许开发者创建具有特定含义和数据的事件,以更好地匹配应用的业务逻辑。...
自定义事件是Flex开发中的一个重要概念,允许开发者扩展内置事件系统,以满足特定项目的需要。下面将详细介绍Flex4自定义事件的用法,以及如何在一个完整的项目中导入和运行。 1. **创建自定义事件类** - 首先,...
4. 示例学习:在"flex自定义组件事件DEMO"中,你可以看到如何在自定义组件中创建并派发自定义事件,以及如何在其他地方监听和响应这些事件。通过分析代码,可以了解事件生命周期、事件冒泡和捕获的概念,以及如何在...
这个主题聚焦于“flex自定义控件与事件”,这是一个关键的开发概念,特别是对于那些希望深入理解Flex架构和提升应用用户体验的开发者来说。 自定义控件在Flex开发中扮演着重要角色,它们允许开发者根据项目需求创建...
在Flex中,自定义组件是开发者根据项目需求创建的特殊UI元素,可以扩展和定制标准的MX或Spark组件。本示例着重于一个名为“ImageViewer”的自定义组件,这通常是一个用于展示图像并可能包含缩放、平移等交互功能的...
Flex自定义组件是Adobe Flex框架中的一个重要特性,它允许开发者创建具有特定功能和外观的UI元素,以满足项目中独特的用户界面需求。Flex是一个开源的、基于MXML和ActionScript的开发框架,主要用于构建富互联网应用...
### Flex自定义ToolTip详解 在Flex开发中,`ToolTip`是一种非常实用的界面元素,用于在用户悬停或聚焦某个控件时显示额外的信息。默认情况下,Flex提供了基本的`ToolTip`功能,但有时为了满足特定的设计需求或者...
在本文中,我们将深入探讨如何在Flex...总结来说,自定义Flex加载条是一项涉及组件样式、模板、动画和事件处理的综合工作。通过学习和实践这个示例,你可以掌握如何根据项目需求定制出独特的加载条组件,提升用户体验。
本篇文章将深入探讨如何在Flex环境中自定义实现一个具备展开、收缩功能的多级目录树形结构。 首先,让我们理解`Flex`布局。Flex布局,全称为Flexible Box,是一种用于容器中元素的布局模型,旨在提供更好的灵活性,...
在标题“各种Flex自定义组件”中,我们可以推断这是一个包含多种定制Flex组件的资源集合。这些组件可能包括时间选择器、数据网格(datagrid)、树形视图(tree)和下拉组合框(combox)。每个组件都有其特定的用途和...
Flex 自定义 时间 日历 控件
标题提到的"flex 自定义进度条",指的是利用Flex布局技术来设计一个可定制的进度条组件。Flex布局,全称为Flexible Box布局,是一种在CSS3中引入的布局模型,旨在提供更灵活的盒状模型布局方式,尤其适合在不同屏幕...
标题中的“flex自定义组件介绍”指的是在Adobe Flex框架中创建和使用自定义组件的过程。Flex是一个基于ActionScript和MXML的开源框架,用于构建富互联网应用程序(RIA)。自定义组件允许开发者根据特定需求扩展Flex...
综上所述,FLEX自定义等待图标资源为开发者提供了丰富的选项,帮助他们提升应用程序的用户体验。通过灵活地使用SWF和GIF资源,开发者可以创造出与应用风格相符且用户体验优良的等待动画。同时,理解和掌握如何在FLEX...
Flex 自定义公共包,可以在项目里直接使用
Flex自定义编辑项目是一种基于Adobe Flex技术的开发工具,它为用户提供了一种类似于Flash IDE的交互体验。这个项目的核心特点是其高度的可定制性,允许开发者进行多种视觉元素的编辑操作,如拖拽、放大、缩小、添加...
总的来说,掌握ActionScript的自定义组件和自定义事件是提升Flash和Flex开发技能的重要一步。通过实践和研究“WinCCALLMine”中的示例,你可以更好地理解这些概念,并将其应用到你的项目中,从而创造出独特且功能...
Flex中的高级自定义组件开发是构建复杂用户界面的关键技术,它允许开发者超越基本组件的限制,以满足特定的业务需求和视觉设计。在创建高级组件时,了解并掌握一些核心方法的重写至关重要,这些方法涉及到组件的生命...
"flex自定义文本编辑器"是一个这样的示例,它展示了如何利用Flex4框架构建一个具备特定功能的文本编辑工具,同时集成了自定义的拾色器功能。下面我们将详细探讨这个项目的相关知识点。 首先,我们关注的是`Text...