AS3 判断双击事件
//双击事件触发的时候不触发单击事件
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 判断双击事件的更多相关文章
- Android 通过onTouchEvent判断是否为双击事件
通过onTouchEvent判断是否为双击事件,通过前面一次up 跟本次down之间的时间差,并且点击的点的坐标偏移来确定是否为双击事件DOUBLE_TAP_TIMEOUT. boolean isMo ...
- Android实现双击事件的两种方式
Work around的方法是先监听onTouch事件来监听连续点击次数,每次点击都布置一个间隔时间的延时任务,延时任务执行时判断间隔内是否还有点击,如果没有则发布点击次数,重置计数. 实现代码如下: ...
- iOS tabBar双击事件
思路: 在tabBarController的代理方法 shouldSelectViewController 中, 通过判断tabBar选中的控制器是否是当前控制器 并 比对两次点击的时间间隔 来判断是 ...
- Angular JS中双击事件ng-dblclick避免同时触发两次单击事件ng-click的解决方案
有些需求中,需要一个元素上既有双击事件,也有单击事件,而两者实现的效果不一样. 这时可以使用ng-dblclick与ng-click来实现需求,但是要避免浏览器将双击事件误认为是两次单击事件,从而出现 ...
- 关于双击事件.MouseEvent.DOUBLE_CLICK
as3提供了双击事件的调用,但有时候碰到双击事件无法响应,所以总结下原因.先摘录一段官方关于 doubleClick 事件发生的条件.如果 InteractiveObject 的 doubleClic ...
- andorid 中如何实现双击事件
项目需求: android中只有单击和其他事件,其实都是由OnTouch事件演变而来:最近有项目要求双击全屏,所以就试着实现了下 具体实现如下: 1.MainActivity.java实现: publ ...
- C# Note16: wpf window 中添加enter和双击事件
一.添加回车(enter)事件 在C#编程时,有时希望通过按回车键,控件焦点就会自动从一个控件跳转到下一个控件进行操作. 以用户登录为例,当输入完用户名和密码后, 需要点击登录按钮,而登录按钮必须获 ...
- html元素双击事件触发机制猜想及疑惑
今天有个同事遇到一个奇怪的问题,我照着他的代码做了一些简化写了这个demo <!DOCTYPE html> <html> <head> <style type ...
- Cocos2d-x 处理双击事件的两种方法
在cocos2d-x的开发过程中有些时候也是需要用到双击的事件处理,那么由于在cocos2d-x中没有实现对双击的事件的处理,那么我们就需要自己用代码实现. 下面介绍两种方式实现双击事件的处理. (一 ...
随机推荐
- c++编译时打印宏定义
#pragma message("this is message") #pragma message只能打印字符串,如果想打印任何宏定义可使用: #define PRINT_MAC ...
- 20145315 《Java程序设计》第五周学习总结
20145315 <Java程序设计>第五周学习总结 教材学习内容总结 第八章 8.1语法与继承架构 8.1.1使用try,catch 所有的错误都会被打包为对象,使用try,catch可 ...
- CodeForces 838A Binary Blocks(前缀和)题解
题意:给你个n*m的矩阵,要求你找到一个k,k > 1,使得矩阵可以分为很多k * k的小正方形,然后进行操作把每个小正方形都变为0或1,问你怎样使操作数最小. 思路:随便暴力不可取,显然你每次 ...
- pyenv 让 python 版本完美切换
前言 我觉得如果使用 python 开发的话,还是在 unix/linux 的环境下吧,shell 工具的效率比 windows 高得多,尽管 windows 下也有 cmder 这种神器,而且现在 ...
- JS浏览器BOM
浏览器对象模型 (BOM) BOM的核心是window,而window对象又具有双重角色,它既是通过js访问浏览器窗口的一个接口,又是一个Global(全局)对象.这意味着在网页中定义的任何对象,变 ...
- Anaconda ubuntu16.04 Cuda 8.0安装pytorch
Pytorch 安装 Pytorch安装真的太让人省心了,在anaconda的环境下进行安装,只需要一个命令 具体命令请查看官网pytorch 找到适合你的版本进行安装 本机环境: anaconda3 ...
- 利用IntelliJ IDEA创建第一个Groovy工程
因为某些原因,需要学习一下Groovy.关于Groovy的入门教程请看这篇文章http://www.ibm.com/developerworks/cn/education/java/j-groovy/ ...
- 图像添加logo水印函数
<?php //图像添加水印函数 /** *为一张图片添加上一个logo水印(以保存新图片的方式实现) *@param string $picname 被缩放的处理图片源 *@param int ...
- python 浮点数转分数
from fractions import Fraction value = 4.2 print(Fraction(value).limit_denominator())
- tcpdump 实现原理【整理】
参考:http://blog.sina.com.cn/s/blog_523491650101au7f.html 一.tcpdump 对于本机中进程的系统行为调用跟踪,strace是一个很好的工具,而在 ...