加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Flex addEventListener增加事件侦听函数时传递多个参数

发布时间:2020-12-15 01:39:07 所属栏目:百科 来源:网络整理
导读:今天在flex里通过addEventListener函数给控件动态加载click事件侦听函数时,除了事件本身传递的Event类型参数外,还需要传递更多的参数,在网上找了一段代码,用起来还不错,张贴到这里。 Java代码 package ?? {?? ???? public ? class ?EventArgExtend?? ??

今天在flex里通过addEventListener函数给控件动态加载click事件侦听函数时,除了事件本身传递的Event类型参数外,还需要传递更多的参数,在网上找了一段代码,用起来还不错,张贴到这里。

Java代码
  1. package ??
  2. {??
  3. ????public ? class ?EventArgExtend??
  4. ????{??
  5. ????????public ?function?EventArgExtend()??
  6. ????????{??
  7. ????????}??
  8. ??????????
  9. ????????public ? static ?function?create(f:Function,...?arg):Function???
  10. ????????{??
  11. ???????????????var?F:Boolean=false ;??
  12. ???????????????var?_f:Function=function(e:*,..._arg)??
  13. ???????????????{??
  14. ???????????????????_arg=arg??
  15. ???????????????????if (!F)??
  16. ???????????????????{??
  17. ???????????????????????F=true ??
  18. ???????????????????????_arg.unshift(e)??
  19. ???????????????????}??
  20. ???????????????????f.apply(null ,_arg)??
  21. ???????????????};??
  22. ???????????????return ?_f;??
  23. ??????????}??
  24. ??????????public ? static ?function?toString():String???
  25. ??????????{??
  26. ???????????????return ? "Class?JEventDelegate" ;??
  27. ??????????}??
  28. ????}??
  29. }??

?

使用的方式:

Java代码
  1. txtShow.addEventListener(MouseEvent.CLICK,EventArgExtend.create(clickHandler, 1 , "str" ));??
  2. ??
  3. ????????????private ?function?clickHandler(e:Event,...arg): void ??
  4. ????????????{??
  5. ????????????????Alert.show(arg[0 ].toString());??
  6. ????????????????Alert.show(arg[1 ].toString());??
  7. ????????????}??

?

还有另外一个方法,没有封装效果,不过代码更加容易理解:

?

Java代码
  1. var?sayHello:String?=? "欢迎光临www.FlashJ.cn?-Flash,Ria技术博客" ;??
  2. btn1.addEventListener(MouseEvent.CLICK,function?(e:MouseEvent){clickHandlerWithArg(e,sayHello)});??
  3. function?clickHandlerWithArg(e:MouseEvent,arg:String):void ??
  4. {??
  5. ????var?out:String=?e.target?+?"发出事件(有参数)?:" ?+?arg;??
  6. ????trace(out);??
  7. }???

?转自:http://pengranxiang.javaeye.com/blog/640536

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读