·您当前的位置:首页 > 技术教程 > AS2与AS3技术 >

[AS3]as3单击与双击事件完美解决方法附源代码(3)

时间:2013-06-15 16:24CuPlayer.com
importflash.display.Sprite; importflash.events.*; importflash.utils.Timer; publicclassMyButtonextendsSprite { publicvardouble:Boolean; publicfunctionMyButton(){ super(); init(); } publicfunctioninit(

 

  1. import flash.display.Sprite; 
  2. import flash.events.*; 
  3. import flash.utils.Timer; 
  4. public class MyButton extends Sprite 
  5. { 
  6. public var double:Boolean; 
  7. public function MyButton() { 
  8.     super(); 
  9.     init(); 
  10. } 
  11. public function init():void { 
  12.      addEventListener( MouseEvent.CLICK , onClickHandler ); 
  13.      addEventListener( MouseEvent.DOUBLE_CLICK , onDoubleClickHandler ); 
  14. } 
  15. public function onClickHandler( e:MouseEvent ):void { 
  16. double = false; 
  17. var timer:Timer = new Timer(260,1); 
  18. timer.addEventListener( TimerEvent.TIMER , checkClick ); 
  19. timer.start(); 
  20. } 
  21. public function onDoubleClickHandler( e:MouseEvent ):void { 
  22.     double = true; 
  23. } 
  24. public function checkClick( e:TimerEvent ):void { 
  25. if( double ){ 
  26.     //www.cuplayer.com酷播提示你监听这两个自定义事件即可 
  27.    dispatchEvent( new Event( "mouseDoubleClick" , true ) ); 
  28. }else{ 
  29.     dispatchEvent( new Event( "mouseSingleClick" , true ) ); 
  30. } 
  31. } 
  32. } 

以上的做法有个弊端,就是会导致单击延时.
高手推荐做法
只加CLICK的侦听,然后通过记时然后分辨单击和双击

 

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器