`
yunzhongxia
  • 浏览: 647419 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

监听事件传多个参数

阅读更多

在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,则侦听器只在捕获阶段处理事件,而不在目标或冒泡阶段处理事件。如果 useCapturefalse,则侦听器只在目标或冒泡阶段处理事件。要在所有三个阶段都侦听事件,请调用 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监听事件传多个参数 #### 一、代码解析 首先来看第一个代码段: ```actionscript public static function create(f:Function, arg):Function { var F:Boolean = false; var _f:Function = ...

    Oracle 单一主机多个实例多个监听器配置

    默认情况下,一个监听器可以监听多个实例,但通常,每个实例都应有其特定的监听器配置,以避免资源竞争和提供更好的管理界面。 #### 2. 配置多个监听器的必要性 当在同一主机上运行多个Oracle实例时,为了避免实例...

    各种Android Dialog创建及其监听事件实现

    查阅JavaDoc API文档 读者可根据JavaDoc API文档来了解如何实现单击item选项监听事件 如下列出的setItems 方法第2个参数易知只要为第2个参数提供OnClickListener实例即可实现监听事件 读者可通过这种方式触类旁通...

    js事件监听机制(事件捕获)总结

    使用addEventListener方法为元素添加事件监听是推荐的方式,因为它允许为同一个元素的同一个事件添加多个监听器,而且不会覆盖之前添加的监听器。而直接在对象上赋值事件处理器的方式则有限制,通常只能绑定一个函数...

    cocos creator为事件加上监听的两种处理方式

    `this.node.on` 方法接收三个参数:事件类型、处理函数和上下文(`this` 指针)。在组件不再需要监听事件时,通常会在`onDisable`或`onDestroy`函数中调用`off`方法来移除监听器,以避免内存泄漏。 ### 2. `cc....

    oracle一个监听多个实例

    这样的配置可以让数据库管理员通过单一的监听器(listener)来管理多个数据库实例,从而简化了管理任务并减少了监听器的资源消耗。本文将详细讲述如何在Oracle 11g环境下设置一个监听器对应多个实例的配置方法。 ...

    java自定义事件监听

    2. 创建监听器接口:接着,你需要定义一个接口,其中包含一个或多个方法来处理发生的事件。这些方法通常带有void返回类型和一个表示事件的对象作为参数。 3. 实现监听器:然后,你需要实现这个监听器接口,为每个...

    ScrollView 的滚动事件监听

    ScrollView通常用于包含多个其他视图,如TextView、ImageView或者LinearLayout等,以提供垂直滚动功能。当需要处理ScrollView的滚动事件时,开发者需要深入理解其滚动机制和监听接口。本文将详细探讨ScrollView的...

    windows下nginx配置https以及同一个端口监听多个网站即监听多个虚拟主机

    在Windows环境下,配置Nginx以支持HTTPS及在同一端口监听多个网站,即配置多个虚拟主机,是一项常见的网络服务设置任务。Nginx是一个高性能的HTTP和反向代理服务器,以其稳定性、高并发处理能力而受到广泛使用。下面...

    C# Hock 全局监听程序外的键盘和鼠标的事件

    钩子是一种机制,由Windows操作系统提供,它允许应用程序设置一个或多个“钩子”,以便拦截特定类型的系统消息。当特定类型的事件发生时,如键盘按键或鼠标移动,钩子函数就会被调用,从而可以对这些事件进行处理。 ...

    自定义behavior监听控件的滑动事件

    - `onNestedScroll` 有多个重载版本,根据需求选择合适的参数类型。通常,我们可以通过 ` Consumption` 参数来控制滑动事件的消耗,以决定是否允许其他Behavior或视图继续处理滑动。 4. **滑动事件处理**: - 在 ...

    java实现守护进程,有单独的监听进程, 两个或多个进程,两个或多个jvm

    监听进程通常设计为无阻塞的,以确保它可以高效地处理多个并发事件。 接下来,我们将探讨如何实现守护进程。Java没有内置的守护进程概念,但我们可以通过以下步骤模拟: 1. 分离控制台:让进程脱离控制台,防止被...

    Electron中通过globalShortcut实现监听键盘事件进而实现快捷键功能示例代码.zip

    这里,`globalShortcut.register`方法接收两个参数:一个是快捷键的字符串表示,另一个是回调函数,当快捷键被按下时,该回调函数会被调用。在回调函数中,你可以执行任何你想在快捷键被触发时进行的操作。 为了...

    spring 事件监听 3种方式

    基于接口的监听器适合于早期版本的Spring,基于类的监听器提供了一种更简洁的实现方式,而基于注解的监听器在Spring 4.2之后提供了更多的灵活性和控制力。通过熟练掌握这三种方式,我们可以更好地利用Spring框架实现...

    vb Hook 监听 捕捉键盘,鼠标事件

    钩子是一种Windows操作系统提供的机制,允许应用程序设置一个或多个“陷阱”,当特定类型的事件发生时,系统会将控制权交给设置钩子的程序,让其有机会先处理这个事件。在VB中,我们可以使用API(应用程序接口)调用...

    Oracle一个实例配置多个监听

    注意,由于监听器可以同时监听多个端口,因此即使在同一个监听器中也可以定义不同的端口。 ##### 步骤二:关联监听器和服务 接下来需要将这些监听器与Oracle服务关联起来。可以通过两种方式来实现这一目标: - **...

    ARPG项目中的事件通知模块,传多少个参数都方便,万能事件通知-NK事件通知传参.zip

    用法简介 1 代表第一种方法 2代表第二种方法,还有一点比较方便的是非必要可以不用每次都要写移除监听的方法,因为继承了Mono,会自动管理的,如果要传多个参数就在DeSubscribe这里写你需要的参数 比如 DeSubscribe...

    $emit触发事件拿不到传递的参数.zip

    然而,有时候我们可能会遇到一个问题,即在父组件中通过`$on`监听子组件触发的事件时,无法接收到传递的参数。这个问题可能是由多种原因引起的,以下是一些常见的原因及解决方案: 1. **事件绑定不正确**: 确保在...

    jquery绑定click事件传递参数

    不过,这种方式只能传递一个对象,如果需要传递多个参数,可以考虑使用JSON串或者数组。 另外,jQuery的`.on()`方法提供了一种更直观的方式来传递参数,特别是在处理动态添加的元素时: ```javascript $('element'...

Global site tag (gtag.js) - Google Analytics