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

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

时间:2012-12-03 18:11CuPlayer.com
最开始遇到这个问题是在做播放器全屏的时候,上网搜了一下,发现已经有人遇到了,解决办法有以下几种,[AS3]as3.0双击与单击动作事件判断的解决办法

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

  第一种:

  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. }  

 

热门文章推荐

请稍候...

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

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