今天在flex里通过addEventListener函数给控件动态加载click事件侦听函数时,除了事件本身传递的Event类型参数外,还需要传递更多的参数,在网上找了一段代码,用起来还不错,张贴到这里。
package
{
public class EventArgExtend
{
public function EventArgExtend()
{
}
public static function create(f:Function,... arg):Function
{
var F:Boolean=false;
var _f:Function=function(e:*,..._arg)
{
_arg=arg
if(!F)
{
F=true
_arg.unshift(e)
}
f.apply(null,_arg)
};
return _f;
}
public static function toString():String
{
return "Class JEventDelegate";
}
}
}
=========================================== 使用的方式:
txtShow.addEventListener(MouseEvent.CLICK,EventArgExtend.create(clickHandler,1,"str"));
private function clickHandler(e:Event,...arg):void
{
Alert.show(arg[0].toString());
Alert.show(arg[1].toString());
}
还有另外一个方法,没有封装效果,不过代码更加容易理解:
var sayHello:String = "欢迎光临www.FlashJ.cn -Flash,Ria技术博客";
btn1.addEventListener(MouseEvent.CLICK,function(e:MouseEvent){clickHandlerWithArg(e,sayHello)});
functionclickHandlerWithArg(e:MouseEvent,arg:String):void
{
varout:String= e.target + "发出事件(有参数) :" + arg;
trace(out);
}
分享到:
相关推荐
可能你也碰到过这种情况,就是在js的代码中用了[removed]后,可能会影响到body中的onload事件。你可以全写在body中,也可以全放到[removed]中,但是这样并不是很方便,有时我们需要两个同时用到。这时就要用window....
addEventListener 有三个参数:第一个参数表示事件名称(不含 on,如 “click”);第二个参数表示要接收事件处理的函数;第三个参数为 useCapture,本文就讲解它。 代码如下: ”outDiv”> ”middleDiv”> ”...
注意:一定要保证移除事件时和添加事件时是同一个事件函数 事件绑定兼容性问题:在低版本IE中(IE 6/7/8)不支持addEventListener和removeEventListener, 在低版本IE中可以使用: attachEvent(事件名,事件函数) 绑定...
dh-addeventlistener Helpers函数可促进DOM元素上的事件侦听器。正在安装npm install @borracciablu/dh-addeventlistener import { onClick } from '@borracciablu/dh-addeventlistener' ;var { onClick , onFocus ,...
今天在给元素注册事件的时候,使用addEventListener遇到了一个问题,这个好像之前也遇到过,觉得有必要总结一下,就是js函数作为参数引发的问题。首先看以下代码,觉得下面代码有问题吗?是否能达到点击id3对应的...
动作脚本事件处理函数共有两类:事件处理函数方法和事件侦听器,要明白事件侦听器的概念,必须首先理解线性编程和事件驱动编程的区别;
本文实例讲述了JavaScript使用addEventListener添加事件监听用法。分享给大家供大家参考。具体实现方法如下: <!DOCTYPE html> <html lang=en> <head> <title>This text is the title of the...
这三个事件只在手机上生效 touchstart:手指开始触屏 touchmove:手指移动 touchend:手指触屏结束 这个事件在手机上跟在pc端都生效 scroll事件 addeventlistener(name,callback,optional,useCapture) useCapture...
当接收到 Flex 前端的远程调用请求时,BlazeDS 通过 FlexFactory 创建 FactoryInstance 对象,并传入请求的 Service ID。在这个应用程序中,被创建的 FactoryInstance 实际对象是 SpringFactoryInstance; ...
所有的DOM节点中都包含这两种方法,并且它们都接受3个参数:要处理的事件名、作为事件处理程序的函数和一个布尔值。 最后这个布尔值参数是true,表示在捕获阶段调用事件处理程序;如果是false,表示在冒泡阶段调用...
通过 RemoteObject 进行调用虽然简单,但存在不少问题:首先,RemoteObject 是一个 Dynamic Class,Flex Builder 的编译器无法替我们检查参数类型和参数个数,这样,在编写 ActionScript 代码时极易出错。...
合并事件 使用很少的事件侦听器管理多个事件处理程序。例子import { addEventListener } from 'consolidated-events' ;const removeEventListener = addEventListener ( window , 'scroll' , ( ) => { console . log...
EventTarget是一个由...addEventListener() 方法将指定的监听器注册到 EventTarget 上,当该对象触发指定的事件时,指定的回调函数就会被执行。 事件目标可以是一个文档上的元素 Element,Document和Window或者任何其
昨晚回去后,和雷子讨论如何才能“检测”到页面上某个元素都绑定了哪些事件监听函数,第一感觉就是应该从浏览器入手,比如FF,或者Chrome等
最近在写一个事件代理的时候,遇到一个BUG,发现除此外,二者绑定的执行函数中的 this 是不相同的,addEventListener 和 attachEvent函数在运行时候的上下文是不相同的。 用了一个简单的demo来描述这个不同点: ...
本文实例讲述了JavaScript实现跨浏览器的添加及删除事件绑定函数。分享给大家供大家参考。具体如下: IE 的事件绑定函数是 attachEvent;而 Firefox, Safari 是 addEventListener;Opera 则两种都支持。使用jQuery就...
本文为大家介绍下动态的绑定事件的方法addEventListener的使用示例,不了解的朋友可以参考下