addEventListener注册事件进行传递参数的方法(AS3)

      flash学习 2007-8-26 13:3


分享一下我写的这个类

/**
* @author:ycccc8202
* @用途:注册事件进行传递参数的代理类
* @date:2007.8.26
* @example:
* import CYPL.utils.JEventDelegate
  stage.addEventListener(MouseEvent.MOUSE_DOWN,JEventDelegate.create(mouseDownHandler,"a","b"));
  function mouseDownHandler(e:MouseEvent,...arg) {
  trace(e)
  trace(arg)
  }
*/
package CYPL.utils{
 import flash.events.Event
 public class JEventDelegate {

  public function JEventDelegate() {
  }
  public static function create(f:Function,... arg):Function {
  return function(e:Event){
  f.apply(null,[e].concat(arg));}
 
};

public static function toString():String {
 return "Class JEventDelegate";
}

}
}


使用格式如下:

import CYPL.utils.JEventDelegate
  stage.addEventListener(MouseEvent.MOUSE_DOWN,JEventDelegate.create(mouseDownHandler,"a","b"));
  function mouseDownHandler(e:MouseEvent,...arg) {
  trace(e)
  trace(arg)
  }

//这样的好处是既保留了原有的event参数,又能够传递新的参数
标签集:TAGS:
回复Comments() 点击Count()

回复Comments

{commentauthor}
{commentauthor}
{commenttime}
{commentnum}
{commentcontent}
作者:
{commentrecontent}