ActionScript 3.0 Developer’s Guide / Core ActionScript Classes -> Handling events:
http://help.adobe.com/en_US/as3/dev/WS5b3ccc516d4fbf351e63e3d118a9b90204-7fca.html
Using Flex 4.5 / Getting started -> Events:
http://help.adobe.com/en_US/flex/using/WS2db454920e96a9e51e63e3d11c0bf69084-7ee9.html
Event Propagation:
http://learn.adobe.com/wiki/display/Flex/Event+Propagation
Event-driven programming in Flex with Custom Events:
http://flexblog.faratasystems.com/2007/02/26/event-driven-programming-in-flex-with-custom-events
An indepth look at Flex Events:
http://codeofdoom.com/wordpress/2009/03/02/an-indepth-look-at-flex-events/
Attention:
当在as代码中置Combobox的selectedItem/selectedIndex 、DateField的selectedDate时,如:
comboBox.selectedIndex = j;
dateField.selectedDate = actDate;
并不会分发change事件!所以需要硬编码分发change event:
comboBox.selectedIndex = j;
comboBox.dispatchEvent(new IndexChangeEvent(IndexChangeEvent.CHANGE));
dateField.selectedDate = actDate;
dateField.dispatchEvent(new CalendarLayoutChangeEvent(CalendarLayoutChangeEvent.CHANGE));
绝好的一个理解FLEX事件的例子:华氏/摄氏温度转换类 DegreeConverter :
http://www.artima.com/articles/two_way_binding.html引用
package com.artima {
import flash.events.Event;
import flash.events.EventDispatcher;
[Bindable]
public class DegreeConverter extends EventDispatcher {
private var fahrenheitDegree: Number;
private var celsiusDegree: Number;
public function set fahrenheit(n: Number): void {
fahrenheitDegree = n;
celsiusDegree = (fahrenheitDegree - 32) * 5/9;
dispatchEvent(new Event("celsiusChanged", true, true));
}
[Bindable(event="fahrenheitChanged")]
public function get fahrenheit(): Number {
return fahrenheitDegree;
}
public function set celsius(n: Number): void {
celsiusDegree = n;
fahrenheitDegree = celsiusDegree * 9/5 + 32;
dispatchEvent(new Event("fahrenheitChanged", true, true));
}
[Bindable(event="celsiusChanged")]
public function get celsius(): Number {
return celsiusDegree;
}
}
}
分享到:
相关推荐
### Flex:事件的流转控制 #### 一、事件机制概览 在Flex中,事件机制是一种非常核心且灵活的功能,它允许开发人员有效地管理和响应应用程序内的各种交互行为。Flex的应用程序是基于事件驱动架构的,这意味着大...
3. 目标阶段:事件达到实际触发事件的目标组件。在这一阶段,目标组件上的监听器将被调用。 在Flex中,可以使用addEventListener方法添加事件监听器,通常包括事件类型、处理函数和可选的捕获标志。...
1. 定义事件类:通过继承Event类或其子类,如FlexEvent,定义自定义事件类,添加自己的属性和方法。 2. 分发自定义事件:在事件源中创建自定义事件实例,并使用dispatchEvent方法分发。 3. 注册监听器:与处理内置...
function onMouseMove(event:MouseEvent):void { // 获取鼠标位置 var mouseX:Number = map.mouseX; var mouseY:Number = map.mouseY; // 创建一个Point对象存储坐标 var point:Point = new Point(mouseX, ...
通常,我们会选择`flash.events.Event`或`mx.events.FlexEvent`作为基类,前者适用于基本事件,后者则为Flex框架提供了一些额外的属性和方法。 - 自定义事件类应包含一个构造函数,用于初始化事件的属性。例如,...
其中`event_type`是事件类型,可以是Flex内置的事件类型,也可以是用户自定义的事件类型。此方法返回一个布尔值,通常为`true`,表示事件已成功分发。 为了向`Event`对象添加新的属性,开发者可以继承`Event`类并...
- 创建事件类:继承自mx.events.Event类或与其相关的子类,如FlexEvent。 - 定义事件类型:通过静态常量定义事件标识符。 - 派发事件:在组件中使用dispatchEvent方法触发自定义事件。 3. 事件处理:处理自定义...
每个事件类型都有一个唯一的字符串标识,如“MouseEvent.CLICK”或“FlexEvent.CHANGE”。 3. 事件对象: 当事件发生时,会创建一个事件对象,它包含了关于事件的所有信息,如事件类型、时间源、事件目标等。...
Flex.3事件机制(2)——Event对象视频Flex.3事件机制(2)——Event对象视频Flex.3事件机制(2)——Event对象视频
在Flex中,可以通过继承`flash.events.Event`类来创建自定义事件。如示例代码所示,`CustomEvent`类扩展了`Event`,添加了一个`data`属性,用于传递额外的数据。自定义事件通常包括以下方法: - `constructor`:...
private function mybutclick(event:MouseEvent):void { var me:MyEvent = new MyEvent(myvalue.text, "MY_CLICK"); this.dispatchEvent(me); } ]]> </mx:Script> <mx:Button id="mybut" x="167" y="116" ...
private function handleAddToStage(event:Event):void { ExternalInterface.addCallback("parseUrlParams", parseUrlParams); } private function parseUrlParams():void { var params:Object = JSON.parse...
function onProgress(event:Event):void { var loaded:Number = event.bytesLoaded; var total:Number = event.bytesTotal; // 更新进度条UI } function onComplete(event:Event):void { // 文件下载完成,处理...
private function onMenuShow(event:Event):void { var menu:ContextMenu = new ContextMenu(); // 添加菜单项 var menuItem:MenuItem = new MenuItem(); menuItem.label = "删除"; menuItem....
例如,`function handleEvent(event:Event):void`这样的函数可以处理所有类型的事件,而`function handleClick(event:MouseEvent):void`则专门处理鼠标点击事件。 8. **事件阻止和停止**:`stopPropagation`方法...
5. **事件流**:事件从派发器到目标的流动路径,包括捕获阶段、目标阶段和冒泡阶段。 #### 四、事件对象与处理机制 在ActionScript 3.0中,每个事件都由一个事件对象表示,通常是一个`Event`类或其子类的实例。...
var clickEvent:MouseEvent = new MouseEvent("click", false); this.dispatchEvent(clickEvent); } ]]> </mx:Script> <mx:Button id="testBtn" click="dispatchClickEvent()" label="测试" /> ``` 在此示例中,...
function saveCancelled(event:Event):void { trace("Save operation was cancelled by the user."); } ``` 5. **安全限制**: 需要注意的是,由于Flash Player的安全限制,`FileReference`的`save`方法只能在...
在Flex开发中,自定义组件和事件通讯是构建复杂应用程序的关键技术。本示例通过一个简单的用户登录场景,深入解析了如何实现组件间的有效通信。下面将详细解释Flex自定义组件、事件处理以及它们在实际应用中的作用。...
在ActionScript 3.0中,每个事件都由一个事件对象表示,这个对象继承自Event类或其子类。事件对象携带特定事件的相关信息,并提供了操作这些事件的方法。例如,鼠标点击会创建一个MouseEvent实例。ActionScript 3.0...