先从一个红绿灯例子看起,
<?xml version="1.0"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="init()">
<mx:Script>
<![CDATA[
private function init():void{
hbox.addEventListener(MouseEvent.CLICK,eventHandler);
}
private function eventHandler(event:Event):void{
if(event.target is Button){
lab.text="交通信号为:"+Button(event.target).label;
}
}
]]>
</mx:Script>
<mx:VBox width="100%" height="100%" id="vbox">
<mx:Label text="关闭" id="lab"/>
<mx:HBox id="hbox">
<mx:Button label="绿色" id="btnGreen"/>
<mx:Button label="红色" id="btnRed"/>
<mx:Button label="蓝色" id="btnBlue"/>
</mx:HBox>
</mx:VBox>
</mx:Application>
事件的三个要素:
- 事件源:事件源指的是发生事件的对象。本例中即是三个按钮。
- 监听器:监听器是一个具体的方法,负责处理事件响应。监听器被注册到某个可以接收到事件通知的对象上。本例中监听器是eventHandler方法,被注册到按钮的父容器hbox上
- 事件:事件本身就是一个对象。监听器在处理事件的时候,有时候需要知道事件的来龙去脉,比如事件源是谁?发生了什么事情?事件对象中封装了这些信息,本例中,监听器eventHandler方法的参数既是事件对象。
上面的监听器必须解决两个问题:
- 如何判断用户点击的是按钮?
if(event.target is Button)
在hbox上添加了鼠标点击事件,如果此容器中包含有除了Button之外的其它组件,Flash Player也会调用eventHandler,但是监听器是比较聪明的,他会检测事件源是不是按钮,这里的秘密在于event,Event是在事件发生时,有FlashPlayer隐式创建的。Event描述了所发生的事件,event.target is Button检测事件源是否为按钮对象。
2. 用户按了哪个按钮?
Event对象实例event通过event.target告诉了谁是事件源,继而通过强制类型转换Button(event.target),得到了发生事件源对象,从而获得了他的label属性。
讨论下creationComplete
creationComplete事件并不是由用户触发的,Application初始化完毕,FlashPlayer就会自动触发该事件。
如果在as3中为添加creationComplete方法,只需要addEventListenter.add("creationComplete",函数)就可以了。
上面的事件监听之能传一个参数,如果想传多个参数,请参考事件监听传多个参数这篇文章。
分享到:
相关推荐
这些信息有助于快速联系到事件的第一发现者,了解事件的第一手情况,并确保信息传递的准确性。 2. 事故描述:这部分需要详细记录事件的发生情况,如事件的具体内容(例如,系统被黑、数据泄露、恶意软件感染等)、...
C#事件(event)使用方法详解 事件(event)是C#中的一种机制,允许对象在发生...通过了解事件(event)的概念、使用方法、事件编程的优点、事件与委托的关系、事件的实现等方面,可以更好地掌握C#事件(event)使用方法详解。
JavaScript 事件机制详细研究 ...JavaScript 事件机制是非常复杂的,它需要了解事件机制的实现方式、原理和浏览器的兼容性问题。只有深入了解这些知识点,才能编写出高效、可靠的 JavaScript 代码。
首先,让我们深入了解事件系统架构。在Java中,事件系统通常基于观察者模式,也称为发布/订阅模式。在这个模式中,一个对象(发布者)在其状态改变时会通知其他对象(订阅者或观察者)。在KWIC系统中,事件可能是...
【Flex 事件机制详解】 Flex 事件机制是 Flex 应用程序中不可或缺的一部分,它使得组件之间能够有效地通信,响应...通过深入了解事件注册、分发、监听以及自定义事件,开发者可以更高效地控制 Flex 应用程序的行为。
通过分析代码,可以了解事件生命周期、事件冒泡和捕获的概念,以及如何在实际项目中利用这些知识。 5. 代码实践:在DEMO中,可能会包含一个自定义组件类(如MyCustomComponent),它会派发一个自定义事件(如...
这包括了解事件对象、事件类型、事件处理函数的定义方式(如`addEventListener`和`removeEventListener`),以及如何利用事件委托实现高效的数据绑定。事件委托是利用事件冒泡或捕获的特性,只在父元素上设置事件...
这有助于管理层快速了解事件发生的时间背景,以便及时处理。 2. **呈报对象**:报告的接收者通常为上级管理层或相关部门,他们需要了解事件详情以进行后续的工作指导或决策。 3. **报告人**:填写报告的保安部负责...
打开这个文件,你可以看到示例项目的结构,编译并运行它以直观地了解事件的工作方式。 8. **学习与实践** 通过分析这些示例,你可以了解到如何声明事件、触发事件、订阅和取消订阅事件,以及如何处理事件。同时,...
在深入了解事件之前,我们先来了解一下委托。委托是一种引用类型的数据结构,它封装了方法的签名,允许将方法作为参数传递。委托是实现事件的基础,其本质是一种函数指针。 **示例:** ```csharp public delegate ...
2. 事件冒泡和取消冒泡:了解事件冒泡的原理,并能阻止事件冒泡。 3. DOM事件流:理解事件在DOM中的传播路径。 4. 鼠标事件:掌握鼠标位置的获取,以及如何处理鼠标事件。 5. 键盘事件:知道如何监听键盘事件,识别...
事件史分析操作的目的是为了了解事件的发生机理、事件的持续时间和事件的终止原因,从而对事件的发展趋势和结果进行预测和分析。 事件史分析操作的步骤: 1. 数据收集:收集事件相关的数据,包括事件的发生时间、...
4. **发生时间**:准确记录事件发生的时间,有助于了解事件的实时性,判断是否需要紧急处理,同时为后续调查提供时间线索。 5. **事件过程描述**:详尽描述事件的起因、经过和结果,包括涉及人员、涉及物品等关键...
接下来,我们将通过一个具体的示例来详细了解事件处理的具体实现: 1. **创建事件类型**:定义一个新的事件类型。 ```python MY_EVENT_TYPE = wx.NewEventType() ``` 2. **定义事件绑定**:使用`wx....
3. 当事医务人员:这些人员需提供他们的基本信息,如姓名,有时还需注明其职务或专业资格,以便了解事件发生的具体责任主体。 4. 患者信息:包括姓名、性别、年龄,以及可能的国籍、工作单位等,确保患者身份的准确...
首先,舆情信息是事件的重要组成部分,通过对舆情信息的采集和分析,可以了解事件的发展趋势和公众的反应。其次,舆情处理可以预防和应对事件的扩大,减少事件对社会的影响。最后,舆情处理可以帮助政府和相关部门更...
记录事件发生的时间以及上报的时间,有助于快速响应并了解事件发生的背景。 #### 上报人信息 包括上报人的姓名、职务、联系方式及邮箱等信息,便于上级部门与上报人取得联系,进一步了解情况或询问细节。 ### 知识...
即监听器不需要直接了解事件源的具体实现细节,只需要关注事件对象所包含的信息。 监听器则定义了对事件源事件的响应。在事件发生时,事件源通知所有已注册的监听器,由监听器决定如何响应事件。监听器通常以回调...