传参之事件代理

有时候我们在调用事件侦听器的时候,需要给它传进相应的参数,这个时候用事件代理的方法非常简单:


function create(f:Function,... arg):Function {
    var F:Boolean=false;
   var _f:Function=function(e:*){
    var a:*=arg
      if(!F){
      F=true
      a.unshift(e)
    };
   f.apply(null,a);
    };
   return _f;
  }
stage.addEventListener(MouseEvent.MOUSE_DOWN,create(mouseDownHandler,"a","b"));
function mouseDownHandler(e:MouseEvent,...arg) {
  trace(arg);
}

你可能感兴趣的:(F#)