//双击事件触发的时候不触发单击事件
package {
import com.greensock.TweenLite; import flash.display.DisplayObjectContainer;
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.utils.getTimer; public class Test1 extends Sprite {
private var _rect:Sprite; public function Test1() {
trace("hello world"); // this.stage.addEventListener(MouseEvent.CLICK, __onTraceClick); drawRect();
_rect.addEventListener(MouseEvent.ROLL_OVER, __onOver);
_rect.addEventListener(MouseEvent.ROLL_OUT, __onOut);
_rect.addEventListener(MouseEvent.MOUSE_DOWN, __onDown); } private function __onOver(evt:MouseEvent):void {
//trace("over");
}
private function __onOut(evt:MouseEvent):void {
//trace("out");
} private var _preDownTime:int = 0;
private function __onDown(evt:MouseEvent):void {
trace("down"); TweenLite.killDelayedCallsTo(doClick); _rect.addEventListener(MouseEvent.MOUSE_UP, __onUp);
_rect.startDrag(); _preDownTime = getTimer();
} private const UP_INTER:int = 300;
private var _preUpTime:int = 0;
private function __onUp(evt:MouseEvent):void {
trace("up");
_rect.removeEventListener(MouseEvent.MOUSE_UP, __onUp);
_rect.stopDrag(); var now:int = getTimer();
if((now - _preUpTime) < UP_INTER) {
trace("----double click");
} else if((now - _preDownTime) < UP_INTER) {
TweenLite.delayedCall(0.2, doClick);
} else {
trace("drag");
}
_preUpTime = now;
} private function doClick():void {
trace("----click");
} private function __onTraceClick(evt:MouseEvent):void {
var str:String = "";
trace(printTrace(evt.target as DisplayObjectContainer));
} private function printTrace(sp:DisplayObjectContainer):String {
if(null == sp) {
return "";
} else { return sp.toString() + "/" + printTrace(sp.parent);
}
}
private function drawRect():void {
var rect:Sprite = new Sprite(); // red rect, starting at point 50, 50
rect.graphics.beginFill(0xFF0000);
rect.graphics.moveTo(50, 50);
rect.graphics.lineTo(150,50);
rect.graphics.lineTo(150,150);
rect.graphics.lineTo(50,150);
rect.graphics.endFill();
_rect = rect;
this.addChild(_rect);
} }
}

  

AS3 判断双击事件的更多相关文章

  1. Android 通过onTouchEvent判断是否为双击事件

    通过onTouchEvent判断是否为双击事件,通过前面一次up 跟本次down之间的时间差,并且点击的点的坐标偏移来确定是否为双击事件DOUBLE_TAP_TIMEOUT. boolean isMo ...

  2. Android实现双击事件的两种方式

    Work around的方法是先监听onTouch事件来监听连续点击次数,每次点击都布置一个间隔时间的延时任务,延时任务执行时判断间隔内是否还有点击,如果没有则发布点击次数,重置计数. 实现代码如下: ...

  3. iOS tabBar双击事件

    思路: 在tabBarController的代理方法 shouldSelectViewController 中, 通过判断tabBar选中的控制器是否是当前控制器 并 比对两次点击的时间间隔 来判断是 ...

  4. Angular JS中双击事件ng-dblclick避免同时触发两次单击事件ng-click的解决方案

    有些需求中,需要一个元素上既有双击事件,也有单击事件,而两者实现的效果不一样. 这时可以使用ng-dblclick与ng-click来实现需求,但是要避免浏览器将双击事件误认为是两次单击事件,从而出现 ...

  5. 关于双击事件.MouseEvent.DOUBLE_CLICK

    as3提供了双击事件的调用,但有时候碰到双击事件无法响应,所以总结下原因.先摘录一段官方关于 doubleClick 事件发生的条件.如果 InteractiveObject 的 doubleClic ...

  6. andorid 中如何实现双击事件

    项目需求: android中只有单击和其他事件,其实都是由OnTouch事件演变而来:最近有项目要求双击全屏,所以就试着实现了下 具体实现如下: 1.MainActivity.java实现: publ ...

  7. C# Note16: wpf window 中添加enter和双击事件

     一.添加回车(enter)事件 在C#编程时,有时希望通过按回车键,控件焦点就会自动从一个控件跳转到下一个控件进行操作. 以用户登录为例,当输入完用户名和密码后, 需要点击登录按钮,而登录按钮必须获 ...

  8. html元素双击事件触发机制猜想及疑惑

    今天有个同事遇到一个奇怪的问题,我照着他的代码做了一些简化写了这个demo <!DOCTYPE html> <html> <head> <style type ...

  9. Cocos2d-x 处理双击事件的两种方法

    在cocos2d-x的开发过程中有些时候也是需要用到双击的事件处理,那么由于在cocos2d-x中没有实现对双击的事件的处理,那么我们就需要自己用代码实现. 下面介绍两种方式实现双击事件的处理. (一 ...

随机推荐

  1. OpenCV中Denoising相关函数的简单介绍

    参考:http://wenhuix.github.io/research/denoise.html一.基本情况         (一)基本方法          Fast  Non-Local  Me ...

  2. Linux内核分析08

    进程的切换和系统的一般执行过程 一,进程切换的关键代码switch_to分析 进程调度的时机 中断处理过程(包括时钟中断.I/O中断.系统调用和异常)中,直接调用schedule(),或者返回用户态时 ...

  3. 20145311 《Java程序设计》第八周学习总结

    20145311 <Java程序设计>第八周学习总结 教材学习内容总结 第十四章 NIO与NIO2 高级的输入输出处理,可以使用NIO(New IO),NIO2是文件系统的API 第十五章 ...

  4. HBase相关概念

    1.Row Key 基本原则是:(1).由于读取数据只能依靠RowKey,所以应把经常使用到的字段作为行键{如手机号+时间戳拼接的字符串} (2).RowKey长度越短越好,最好不要超过16个字节.从 ...

  5. HDU 2544 最短路(最短路&Floyd)题解

    思路:Floyd模板题,注意一下Floyd核心的三个循环,顺序不要变,我们不能把k放在最内层.因为Floyd是通过不断遍历查找是否有更小的两个路径拼起来能比当前小,如果k在最内层,那么我们就会提前算好 ...

  6. ISSCC 2017论文导读 Session 14: A 28nm SoC with a 1.2GHz Prediction Sparse Deep-Neural-Network Engine

    A 28nm SoC with a 1.2GHz 568nJ/Prediction Sparse Deep-Neural-Network Engine with >0.1 Timing Erro ...

  7. DB.使用Oracle时的遇到的问题

    1.(20190225)ojdbc14.jar 来自“E:\ZC_DB\_Connector\Oracle\10g\Oracle Database 10g Release 2 (10.2.0.4) J ...

  8. 浅析使用vue-router实现前端路由的两种方式

    关于vue-router 由于最近的项目中一直在使用vue,所以前端路由方案也是使用的官方路由vue-router,之前在angularJS项目中也是用过UI-router,感觉大同小异,不过很显然v ...

  9. html绘制三角形(兼容IE6)

    .sanjiao { width:; height:; overflow: hidden; border-width: 10px; border-color: red transparent tran ...

  10. 学习笔记20151211——AXI4 STREAM DATA FIFO

    AXI4 STREAM DATA FIFO是输入输出接口均为AXIS接口的数据缓存器,和其他fifo一样是先进先出形式.可以在跨时钟域的应用中用于数据缓冲,避免亚稳态出现.支持数据的分割和数据拼接.在 ...