- 浏览: 420775 次
- 性别:
- 来自: 济南
-
最新评论
-
nianshi:
slideDown就是show的滑动效果版本, slideUp ...
Jquery零碎代码收藏 -
nianshi:
以后编写JS代码,少写<div onclick=&quo ...
Jquery零碎代码收藏 -
nianshi:
获取匹配元素相对父元素的偏移var p = $("p ...
Jquery零碎代码收藏 -
nianshi:
获取匹配元素在当前窗口的相对偏移var p = $(" ...
Jquery零碎代码收藏 -
wuchu:
谢谢
Flex 读取XML配置文件总结
移除事件监听器
对于任何一个处理器,如果不再使用就将它移除,是一个好主意。移除对象的引用,即可清理内存。你可以使用
removeEventListener()
方法来移除一个你不再需要的事件处理器。所有可以掉红
addEventListener()
方法的组件也可以调用
removeEventListener()
方法。
removeEvenetListener()
方法的语法如下:
componentInstance.removeEventListener(event_type:String, listener_function:Function,
use_capture:Boolean)
|
考虑下面的代码:
myButton.removeEventListener(MouseEvent.CLICK, myClickHandler);
|
event_type
和
listener_function
参数是必须的。它们与
addEventListener()
方法的必须的参数相同。
use_capture
参数同样与
addEventListener()
方法中的
use_capture
参数相同。
回想一下,你可以通过调用两次
addEventListener()
方法,一次将
use_capture
设置为
true
,另一次将
use_capture
设定为
false
,来对事件的各个阶段进行监听。要移除这两个监听器,就必须调用
removeEventListener()
方法两次:一次将
use_capture
参数设置为
true
,另一次将
use_capture
参数设定为
false
。
下面的简单程序展示了哪些类型的处理器可以被移除,哪些类型的不能被移除:
<!-- events/RemoveEventListenerExample.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
initialize="createHandler(event)">
<mx:Script><![CDATA[
import mx.controls.Alert;
private function createHandler(e:Event):void {
b1.addEventListener(MouseEvent.CLICK, myClickHandler);
}
private function removeMyHandlers(e:Event):void {
/* Remove listener for b1's click event because it was added
with the addEventListener() method. */
b1.removeEventListener(MouseEvent.CLICK, myClickHandler);
/* Does NOT remove the listener for b2's click event because it
was added inline in an MXML tag. */
b2.removeEventListener(MouseEvent.CLICK, myClickHandler);
}
private function myClickHandler(e:Event):void {
Alert.show("The button was clicked.");
}
]]></mx:Script>
<mx:Button id="b1" label="Click Me"/>
<mx:Button label="Click Me Too" id="b2" click="myClickHandler(event)"/>
<mx:Button label="Remove Event Listeners" id="b3" click="removeMyHandlers(event)"/>
</mx:Application>
|
创建事件处理器类
你可以创建一个外部类文件将类中的方法作为事件处理器使用。对象本身不是事件处理器,但对象的方法可以是。定义一个处理所有事件的类,相同的事件处理逻辑就可以在程序中通用。这样,可以使增强你的
MXML
程序的可读性和可维护性。
要创建一个类来处理事件,你通常需要引入
flash.events.Event
类。通常,你还要些一个空的构造函数。下面的
ActionScript
类文件中,每当
handleAllEvents()
方法处理一个事件的时候,就调用
Alert
控件的
show()
方法:
// events/MyEventHandler.as
package { // Empty package.
import flash.events.Event;
import mx.controls.Alert;
public class MyEventHandler {
public function MyEventHandler() {
// Empty constructor.
}
public function handleAllEvents(event:Event):void {
Alert.show("Some event happened.");
}
}
}
|
在你的
MXML
文件中,定义一个
MyEventHandler
的实例,并且使用
addEventHandler()
方法注册为
Button
控件的点击事件的处理器。如下所示:
<?xml version="1.0"?>
<!-- events/CustomHandler.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" initialize="createHandler()">
<mx:Script><![CDATA[
private var myListener:MyEventHandler = new MyEventHandler();
private function createHandler():void {
b1.addEventListener(MouseEvent.CLICK, myListener.handleAllEvents);
}
]]></mx:Script>
<mx:Button label="Submit" id="b1"/>
</mx:Application>
|
最好将事件处理方法定义为静态的,这样你就不需要实例化类。下面的
createHandler()
方法不需要实例化
MyStaticEventHandler
类,就可以注册
handleAllEvents()
方法:
<?xml version="1.0"?>
<!-- events/CustomHandlerStatic.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" initialize="createHandler()">
<mx:Script><![CDATA[
private function createHandler():void {
b1.addEventListener(MouseEvent.CLICK, MyStaticEventHandler.handleAllEvents);
}
]]></mx:Script>
<mx:Button label="Submit" id="b1"/>
</mx:Application>
|
在文件中,你只是为方法片段加上了
static
关键字:
// events/MyStaticEventHandler.as
package { // Empty package.
import flash.events.Event;
import mx.controls.Alert;
public class MyStaticEventHandler {
public function MyStaticEventHandler() {
// Empty constructor.
}
public static function handleAllEvents(event:Event):void {
Alert.show("Some event happened.");
}
}
}
|
将你的事件监听器类保存在源文件路径中。你也可以将 ActionScript 类保存在和 MXML 文件相同的目录中,尽管 Adobe 并不推荐这样做。
发表评论
-
Flex小记录
2011-02-24 10:18 1307Flex读取XML: <mx:HTTPServic ... -
flex实现滑动显示隐藏效果
2010-12-30 15:30 1617鼠标划过的时候显示菜单栏 ,鼠标移开后隐藏菜单栏。比较常用 ... -
flex DataTimePicker时间控件
2010-12-27 11:54 1327两种DatatimePicker: 1.Datatim ... -
ActionScript 生成伪Guid
2010-12-24 09:52 1223在一个Flash制作的图片上传程序中(使用了FileRefer ... -
Flex中Image组件怎么才能非等比例拉伸图片
2010-12-23 15:49 1521Image组件怎么才能非等比例拉伸图片 设 ... -
Flex中Accordion用法
2010-12-23 11:45 3092<? xml version = & ... -
Flex(替代session过期)实现用户长时间不操作要求重新登录的处理
2010-12-23 11:08 1515flex(替代session过期)用户长时间不操作要求重新登录 ... -
ActionScript 3.0 Socket编程
2010-12-23 09:56 1188在使用ActionScript3.0进行编程 ... -
12个简单易用的flex函数
2010-12-21 10:10 11541.拷贝内容到剪贴板: ... -
Flex自定义控件——Pagebar分页控件
2010-12-20 09:41 5280开发时经常遇到用一个DataGrid分页显示 ... -
Flex资源,很全,很牛!
2010-12-20 09:30 14731、as3ebaylib http://code ... -
Flex 窗体 最大化、最小化实例
2010-12-20 09:28 2728---导入flexMdi.swc (http ... -
在Flex中复制文字到操作系统的剪贴板
2010-12-15 11:18 1254这个实例演示了怎么样使用System. ... -
Flex让Slider控件拖动时显示Tooltip
2010-12-14 16:10 1927格式化与自定义Slider中显示的Tooltip ... -
Flex给Alert加个Icon
2010-12-14 16:05 1292给Alert加个Icon 很简单只要先 Embed 一 ... -
在Flex中用Validator验证数字、字符串、Email、电话号码等
2010-12-14 09:54 4334mx.validators ... -
Flex中使用FileReference类下载文件
2010-12-14 09:47 1805下面的实例演示了Flex中的 File ... -
Flex使用ArrayCollection的filterFunction属性过滤DataGrid
2010-12-14 09:42 1818下面的实例演示了在Flex中怎样使用 ... -
Flex 树形控件(Tree )的使用
2010-12-13 16:24 3484一、树形控件的常用属性 1、dragMoveE ... -
FLEX3中应用CSS完全详解手册(下)
2010-12-13 11:40 892myTabs中的设置 cornerRadiusTab ...
相关推荐
3. **事件监听器** 事件监听器是通过添加到组件上的方法,用于响应特定事件。在MXML中,可以使用`<mx:addEventListener>`标签添加监听器,或者在ActionScript代码中调用`addEventListener`方法。例如,添加一个点击...
为了监听这个事件,我们需要在Tree组件上添加事件监听器。代码示例如下: ```actionscript tree.addEventListener(Event.MENU_SHOW, onMenuShow); ``` `onMenuShow`函数是处理此事件的回调函数,其中我们可以根据...
- 在不再需要监听事件时,记得移除事件监听器,以优化性能。 - 避免在事件处理函数中执行耗时操作,以免阻塞UI线程。 总结,Flex事件机制是构建交互性应用的基础,理解并熟练掌握它能够帮助开发者编写出更加高效、...
4. 事件移除:在不再需要监听特定事件时,使用removeEventListener()方法移除监听器,避免内存泄漏。 三、用户登录示例 在这个例子中,我们有两个自定义组件:LoginForm组件负责接收用户输入和验证登录信息,...
本文将深入探讨Flex事件的基础知识、事件模型、事件生命周期、事件监听器,以及如何自定义事件,旨在帮助初学者理解和熟练运用Flex的事件处理。 一、Flex事件基础 1. 事件模型:Flex采用的是基于发布/订阅...
监听器可以添加在组件的整个生命周期内,也可以在需要时动态添加或移除。 7. **自定义事件** 如果标准的事件类无法满足需求,可以自定义事件类继承自 `Event` 或其子类,如 `MouseEvent`、`KeyboardEvent` 等。...
在Flex中添加事件监听器,可以使用addEventListener方法,接收三个参数:事件类型、处理函数和可选的事件传递级别。例如,为一个Button组件添加点击事件监听器: ```actionscript button.addEventListener...
DOM3事件机制包括四个主要部分:注册事件侦听器、发送事件、侦听事件和移除事件侦听器。以买鞋为例,买鞋的人是事件发送者,买鞋过程是事件,销售人员则是事件侦听器,而买鞋的类型(如皮鞋、运动鞋)则代表事件的...
3. **事件监听器**:通过使用`addEventListener`方法,开发者可以为组件添加事件监听器。监听器是一个函数,它会在特定事件发生时被调用。例如: ```actionscript button.addEventListener(MouseEvent.CLICK, ...
3. **添加和移除监听器**:使用`addEventListener`方法添加监听器,需要提供事件类型、处理函数以及可选的冒泡标志和捕获标志。移除监听器则使用`removeEventListener`方法,确保在不再需要监听事件时释放资源。 4....
在Flex中,事件是用于传递信息的结构化对象,它们从一个源头(通常是组件)发送到其他感兴趣的接收者(监听器)。理解Flex事件的工作流程对于创建响应式和交互式的用户界面至关重要。 首先,让我们深入探讨Flex事件...
7. **事件驱动编程**:Flex应用基于事件驱动模型,学习者需理解事件的生命周期、事件监听器的添加和移除,以及如何自定义事件。 8. **动画与效果**:Flex 3提供了强大的动画和效果支持,如Tween类和Effect类,可以...
3. **事件监听器**: 添加事件监听器通常使用`addEventListener`方法,参数包括事件类型、处理函数和是否在捕获阶段处理。移除监听器则用`removeEventListener`。 4. **事件对象**: 每个事件都包含一些关键属性...
同时,`removeEventListener`用于移除不再需要的监听器。事件处理函数接收的`event`对象提供了关于事件的详细信息,如触发事件的对象、位置等,可以根据需要使用。 了解并熟练掌握Flex事件流对于编写交互性强、响应...
6. **事件移除**:如果不再需要监听特定事件,可以使用`removeEventListener`方法移除监听器,以释放资源并避免未必要的处理。 7. **事件冒泡与事件阻止**:某些事件会沿着组件树向上冒泡,可以使用`...
- **事件监听器**:学习如何添加和移除事件监听器。 #### 11. Event事件机制 - **事件传播**:解释事件的捕获阶段、目标阶段和冒泡阶段。 - **事件取消**:学习如何阻止事件的默认行为和传播过程。 - **自定义事件*...
根据压缩包子文件的文件名称“搜斧 - AS3事件处理机制.mht”,我们可以推断这个文件是一个关于AS3(ActionScript 3.0)事件处理机制的详细文档。AS3是Flex的主要编程语言,事件处理是其核心概念之一。事件驱动编程在...
7. **移除监听器**:为了优化性能,当组件不再需要右键菜单时,记得移除事件监听器。 通过以上步骤,你就可以在Flex的非Application组件上成功使用RightClickManager实现右键菜单。这个过程涉及到事件处理、组件...
3. 事件监听器的处理:注册事件监听器时,一定要记住在不再需要监听事件时移除监听器。可以使用 removeEventListener 方法来做到这一点。 4. 方法参数的引用:如果方法接收对象作为参数,并且在方法内部创建了对...