之前有做一些flash是要用到双击的,但flash不支持,于是就用两次单击的时间差来识别双击是否成立,在fla内用代码很容易实现,但代码有些分散,不太好直接复制到别的fla中,于是就想到了类。
打“flash 双击”搜了一搜,搜出很多,但好像都不太实用,还是自己动手吧。
最难的就是不知道怎么编一个像onMouseDown这样的事件函数.后来在看了本区一位版主写的帖子后算是勉强完成了。
import mx.utils.Delegate;
class DblClick {
private static var isdblclick:Boolean;
var onDblClick:Function;
var lis:Object = new Object();
function DblClick() {
lis.onMouseDown =Delegate.create(this, sj);//第一个参数是作用域,第二个是要执行的函数。
Mouse.addListener(lis);
}
private function clickone() {
isdblclick = false;
}
private function sj() {
if (isdblclick) {
onDblClick();
clickone();
} else {
isdblclick = true;
_global.setTimeout(clickone, 300);
}
}
}使用方法把类放在fla同一目录下
var dbc=new DblClick();//不再需要绑mc了
dbc.onDblClick=function(){trace("双击"};双击是全局的,想限定区域在代码中用hitTest起到重要作用的是
Delegate.create这个方法,大概的看了下flash8帮助对它的描述没看明白,现在还在
研究中
下载地址:
Flash-DblClick.rar (0.45 KB)
请稍等,评论加载中...