宜昌本地软件开发与弱电工程服务商
项目咨询 · 快速响应
您当前的位置: > 博客2 > AS2与AS3技术

[AS3]as3.0双击与单击动作事件判断的解决办法

2016-10-13 00:16:48 点击量:17 标签: 收藏本文

  最开始遇到这个问题是在做播放器全屏的时候,上网搜了一下,发现已经有人遇到了,解决办法有以下几种:

  第一种:

  1. mc.doubleClickEnabled=true 
  2. mc.addEventListener(MouseEvent.CLICK,chick)  
  3. mc.addEventListener(MouseEvent.DOUBLE_CLICK,double)  
  4. var sta=false 
  5. function double(e){  
  6.  sta=true 
  7. }  
  8. function chick(e){  
  9.  sta=false 
  10.  var time=new Timer(260,1)  
  11.  time.start()  
  12.  time.addEventListener(TimerEvent.TIMER,func)  
  13. }  
  14. function func(e){  
  15.  if(sta){  
  16.   trace("极酷播放器提示:双击")  
  17.  }else{  
  18.   trace("极酷播放器提示:单击")  
  19.  }  
  20. }  

  第二种写法:

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

 

ABOUT US
宜昌农人网络科技有限公司

我们是一家提供综合软件外包与弱电工程服务的技术公司。

业务涵盖定制软件、管理系统、网站、小程序、APP、系统集成、网络布线、监控安防、门禁、机房建设及长期技术维护。

公司地址:湖北省宜昌市伍家岗区东站二路6号三峡(宜昌)大数据产业园海洋馆二楼A203室