区分AS3中的单双击

AS3中可以直接添加双击事件了.

interactiveObjectInstance . doubleClickEnabled = true ;
interactiveObjectInstance . addEventListener ( MouseEvent . DOUBLE_CLICK , onDoubleClick ) ;

但是,当click事件和double click事件同时使用时,click事件会屏蔽掉double click事件.所以如果希望使用单击和双击执行不同的操作时,直接把这两种事件添加给interactiveObject实例是不行的.
FLEXing My Muscle 看到一种方法.单击时,设置一个interval,如果在一定的时间差内没有再次单击,刚认为是click事件,反之刚认为是双击事件.然后清除这个interval.

<script type="text/javascript"> // code:

 

package {
import flash.display.Sprite;
import flash.net.navigateToURL;
import flash.net.URLRequest;
import flash.events.MouseEvent;
import flash.utils.clearInterval;
import flash.utils.setInterval;
import flash.display.Graphics;
import flash.text.TextField;
[SWF(width="400",height="300", frameRate="12")]
public class BaseCode extends Sprite
{
private var intervalID:Number = 0 ;
private var timeOffset:Number = 300 ;
private var infoTxt:TextField ;
public function BaseCode()
{
var bmp:Sprite = new Sprite();
drawRectangle(bmp.graphics);
bmp.addEventListener(MouseEvent.CLICK,onClick);
bmp.doubleClickEnabled = true;
bmp.addEventListener(MouseEvent.DOUBLE_CLICK,onDoubleClick);
bmp.x = (stage.stageWidth - bmp.width)/2 ;
bmp.y = (stage.stageHeight - bmp.height)
/2 ;
addChild(bmp);
infoTxt = new TextField();
infoTxt.x = bmp.x ;
infoTxt.y = bmp.y +20 ;
addChild(infoTxt);
}
private function onClick(evt:MouseEvent):void
{
clearInterval(intervalID);
intervalID = setInterval(doClick,timeOffset);
}
private function doClick():void
{
navigateToURL(new URLRequest("http://www.adobe.com"));
infoTxt.text = "Go to Adobe Site";
clearInterval(intervalID);
}
private function onDoubleClick(evt:MouseEvent):void
{
clearInterval(intervalID);
infoTxt.text = "Go to myBlog";
navigateToURL(new URLRequest("http://flashcoder.cn/blog"));
}
private function drawRectangle(target:Graphics):void
{
target.beginFill(0xFF0000,1);
target.drawRect(0,0,100,20);
target.endFill();
}
}
}
 ]]>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值