2007/11/13 | DoubleClick1.0.as 双击类AS1.0版本
类别(Flash习作) | 评论(0) | 阅读(108) | 发表于 10:51
/*
使用方法:定义好mc(或是btn)的onDoubleClick 和onSingleClick,注意单击响应都要写在
onSingleClick里面,不能再使用原来的onRelease,然后用DoubleClick.init(mc)处理一下mc就可以了
//-----用例-----
#include "DoubleClick1.0.as"
DK=new DoubleClick()
mc1.onDoubleClick = function() {
 trace("双击 [ "+this._name+" ]");
};
mc1.onSingleClick = function() {
 trace("单击 [ "+this._name+" ]");
};
mc2.onDoubleClick = function() {
 trace("双击 [ "+this._name+" ]");
};
mc2.onSingleClick = function() {
 trace("单击 [ "+this._name+" ]");
};
mc3.onDoubleClick = function() {
 trace("双击 [ "+this._name+" ]");
};
mc3.onSingleClick = function() {
 trace("单击 [ "+this._name+" ]");
};
DK.init(mc1);
DK.init(mc2);
DK.init(mc3);
//-----------------------------
*/
_global.DoubleClick_instance = null;
function DoubleClick() {
 this.DELAY_TIME = 170;
 this.target;
 this.intervalID;
 this.delayTime;
}
DoubleClick.prototype.onClick = function() {
 if (!this.delayTime) {
  this.delayTime = getTimer();
  clearInterval(this.intervalID);
  this.intervalID = setInterval(this, "run", this.DELAY_TIME);
 } else {
  if ((getTimer()-this.delayTime)<this.DELAY_TIME) {
   this.target.onDoubleClick();
  }
  this.delayTime = null;
 }
};
DoubleClick.prototype.run = function() {
 if (this.delayTime) {
  this.target.onSingleClick();
  this.delayTime = null;
  clearInterval(this.intervalID);
 }
};
DoubleClick.prototype.getInstance = function() {
 if (DoubleClick_instance == null) {
  trace("创建 DoubleClick 实例");
  DoubleClick_instance = new DoubleClick();
 }
 return DoubleClick_instance;
};
DoubleClick.prototype.init = function(mc) {
 mc.doubleClickObject = this.getInstance();
 mc.onRelease = function() {
  if (this.doubleClickObject.target != this) {
   this.doubleClickObject.run();
   this.doubleClickObject.target = this;
  }
  this.doubleClickObject.onClick();
 };
};
0

评论Comments