使用...(rest) 扩展Event参数对象属性
作者:Flying 日期:2007-09-28
大家都知道,当发生事件时,Event对象将作为参数传递给事件侦听器,但Event对象将作为参数的属性是有限的。如果要传递特殊参数,一般会想到通过自定义事件类来实现。下面介绍一种更简单的方法:使用...(rest) 参数来扩展Event参数对象属性。
下面自定义了一个事件代理类:
package {
public class EventDelegate
{
public static function create(f : Function,... arg) : Function {
var isSame : Boolean = false;
var _f : Function = function(e : *,..._arg):void{
_arg = arg;
if(!isSame) {
isSame = true;
_arg.unshift(e);
}
f.apply(null, _arg);
};
return _f;
}
public static function toString() : String {
return "Event Delegate";
}
}
}
使用方法很简单:addEventListener(事件类型, EventDelegate.create(侦听器函数, 参数)),用法有点类似AS2中的Delegate类。
上一篇: 使用arguments对象实现递归
下一篇: 让mssql2000的备份文件兼容mssql2005
文章来自: 本站原创
Tags: Actionscript3
相关日志:
评论: 0 | 引用: 0 | 查看次数: -
发表评论

