在mxml标签里面添加事件时的传参的例子。
<?xml version="1.0"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script>
<![CDATA[
public function runMove(dir:String, e:Event):void {
if (dir == "up") {
//moveableButton.y = moveableButton.y - 5; }
} ]]>
</mx:Script>
<mx:VBox horizontalAlign="center">
<mx:Button id="b1" label="Up" click='runMove("up",event);' width="75" />
</mx:VBox>
</mx:Application>
addEventListener是如何定义的
public function addEventListener(type:String,
listener:Function,
useCapture:Boolean = false,
priority:int = 0,
useWeakReference:Boolean = false):void
type:String— 事件的类型。
listener:Function— 处理事件的侦听器函数。此函数必须接受 Event 对象作为其唯一的参数,并且不能返回任何结果,如下面的示例所示:
function(evt:Event):void
函数名可以是任意的。
useCapture:Boolean (default = false
) — 确定侦听器是运行于捕获阶段、目标阶段还是冒泡阶段。如果将 useCapture
设置为 true
,则侦听器只在捕获阶段处理事件,而不在目标或冒泡阶段处理事件。如果 useCapture
为 false
,则侦听器只在目标或冒泡阶段处理事件。要在所有三个阶段都侦听事件,请调用 addEventListener
两次:一次将 useCapture
设置为 true
,一次将 useCapture
设置为 false
.
priority:int (default = 0
) — 事件侦听器的优先级。优先级由一个带符号的 32 位整数指定。数字越大,优先级越高。优先级为 n 的所有侦听器会在优先级为 n -1 的侦听器之前得到处理。如果两个或更多个侦听器共享相同的优先级,则按照它们的添加顺序进行处理。默认优先级为 0。
useWeakReference:Boolean(default = false
) — 确定对侦听器的引用是强引用,还是弱引用。强引用(默认值)可防止您的侦听器被当作垃圾回收。弱引用则没有此作用。
类级别成员函数不属于垃圾回收的对象,因此可以对类级别成员函数将 useWeakReference
设置为 true
而不会使它们受垃圾回收的影响。如果对作为嵌套内部函数的侦听器将 useWeakReference
设置为 true
,则该函数将作为垃圾回收并且不再是永久函数。如果创建对该内部函数的引用(将该函数保存到另一个变量中),则该函数将不作为垃圾回收并仍将保持永久。
有上面的定义可以看出,listener只能是带有一个event类型的参数,不过下面这个函数可以解决监听器传多个参数的问题。
/** * 监听器添加函数添加参数 */
public static function create(f:Function,... arg):Function {
var F:Boolean=false;
var _f:Function=function(e:*,..._arg):void{
_arg=arg if(!F){
F=true _arg.unshift(e)
}
f.apply(null,_arg)
};
return _f; }
}
使用方法:
btn.addEventListener(BookEvent.ADDBOOK,create("函数名","参数1","参数2"));
另外,利用匿名函数也可以实现事件的传参。
- 大小: 37.2 KB
分享到:
相关推荐
### ActionScript监听事件传多个参数 #### 一、代码解析 首先来看第一个代码段: ```actionscript public static function create(f:Function, arg):Function { var F:Boolean = false; var _f:Function = ...
默认情况下,一个监听器可以监听多个实例,但通常,每个实例都应有其特定的监听器配置,以避免资源竞争和提供更好的管理界面。 #### 2. 配置多个监听器的必要性 当在同一主机上运行多个Oracle实例时,为了避免实例...
查阅JavaDoc API文档 读者可根据JavaDoc API文档来了解如何实现单击item选项监听事件 如下列出的setItems 方法第2个参数易知只要为第2个参数提供OnClickListener实例即可实现监听事件 读者可通过这种方式触类旁通...
使用addEventListener方法为元素添加事件监听是推荐的方式,因为它允许为同一个元素的同一个事件添加多个监听器,而且不会覆盖之前添加的监听器。而直接在对象上赋值事件处理器的方式则有限制,通常只能绑定一个函数...
`this.node.on` 方法接收三个参数:事件类型、处理函数和上下文(`this` 指针)。在组件不再需要监听事件时,通常会在`onDisable`或`onDestroy`函数中调用`off`方法来移除监听器,以避免内存泄漏。 ### 2. `cc....
这样的配置可以让数据库管理员通过单一的监听器(listener)来管理多个数据库实例,从而简化了管理任务并减少了监听器的资源消耗。本文将详细讲述如何在Oracle 11g环境下设置一个监听器对应多个实例的配置方法。 ...
2. 创建监听器接口:接着,你需要定义一个接口,其中包含一个或多个方法来处理发生的事件。这些方法通常带有void返回类型和一个表示事件的对象作为参数。 3. 实现监听器:然后,你需要实现这个监听器接口,为每个...
ScrollView通常用于包含多个其他视图,如TextView、ImageView或者LinearLayout等,以提供垂直滚动功能。当需要处理ScrollView的滚动事件时,开发者需要深入理解其滚动机制和监听接口。本文将详细探讨ScrollView的...
在Windows环境下,配置Nginx以支持HTTPS及在同一端口监听多个网站,即配置多个虚拟主机,是一项常见的网络服务设置任务。Nginx是一个高性能的HTTP和反向代理服务器,以其稳定性、高并发处理能力而受到广泛使用。下面...
钩子是一种机制,由Windows操作系统提供,它允许应用程序设置一个或多个“钩子”,以便拦截特定类型的系统消息。当特定类型的事件发生时,如键盘按键或鼠标移动,钩子函数就会被调用,从而可以对这些事件进行处理。 ...
- `onNestedScroll` 有多个重载版本,根据需求选择合适的参数类型。通常,我们可以通过 ` Consumption` 参数来控制滑动事件的消耗,以决定是否允许其他Behavior或视图继续处理滑动。 4. **滑动事件处理**: - 在 ...
监听进程通常设计为无阻塞的,以确保它可以高效地处理多个并发事件。 接下来,我们将探讨如何实现守护进程。Java没有内置的守护进程概念,但我们可以通过以下步骤模拟: 1. 分离控制台:让进程脱离控制台,防止被...
这里,`globalShortcut.register`方法接收两个参数:一个是快捷键的字符串表示,另一个是回调函数,当快捷键被按下时,该回调函数会被调用。在回调函数中,你可以执行任何你想在快捷键被触发时进行的操作。 为了...
基于接口的监听器适合于早期版本的Spring,基于类的监听器提供了一种更简洁的实现方式,而基于注解的监听器在Spring 4.2之后提供了更多的灵活性和控制力。通过熟练掌握这三种方式,我们可以更好地利用Spring框架实现...
钩子是一种Windows操作系统提供的机制,允许应用程序设置一个或多个“陷阱”,当特定类型的事件发生时,系统会将控制权交给设置钩子的程序,让其有机会先处理这个事件。在VB中,我们可以使用API(应用程序接口)调用...
注意,由于监听器可以同时监听多个端口,因此即使在同一个监听器中也可以定义不同的端口。 ##### 步骤二:关联监听器和服务 接下来需要将这些监听器与Oracle服务关联起来。可以通过两种方式来实现这一目标: - **...
用法简介 1 代表第一种方法 2代表第二种方法,还有一点比较方便的是非必要可以不用每次都要写移除监听的方法,因为继承了Mono,会自动管理的,如果要传多个参数就在DeSubscribe这里写你需要的参数 比如 DeSubscribe...
然而,有时候我们可能会遇到一个问题,即在父组件中通过`$on`监听子组件触发的事件时,无法接收到传递的参数。这个问题可能是由多种原因引起的,以下是一些常见的原因及解决方案: 1. **事件绑定不正确**: 确保在...
不过,这种方式只能传递一个对象,如果需要传递多个参数,可以考虑使用JSON串或者数组。 另外,jQuery的`.on()`方法提供了一种更直观的方式来传递参数,特别是在处理动态添加的元素时: ```javascript $('element'...