msgbartop
世界上没有老实人,所谓的老实人是用来欺骗像我这样老实的人!
msgbarbottom

17 6月 06 让您的flash也支持双击的

2006年6月17日发表于Net.Ru | 共有:0 人评论

  最近在网上看到一些动画居然要双击才能打开链接,很是好奇。可以在flash里只有单击,(一般来讲,Flash 的链接或是触发事件都只是单击的),马上找了一下相关的资料,自己想了几个解决方法,效果一直不好,近来在网上看到[追忆布落格 让您的flash也支持双击的类]感觉还不错,就收集了过来!

  

代码:
import mx.utils.Delegate;

import mx.core.UIObject;

class DBClick {

public static var DELAY_TIME:Number = 200;

private var _mc:UIObject;

private var intervalID:Number;

private var delayTime:Number;

public function DBClick(mc:UIObject) {

  _mc = mc;

  _mc.onMouseUp = Delegate.create(this, onClick);

}

private function onClick() {

  if (!delayTime) {

   delayTime = getTimer();

   if (intervalID != undefined) {

    clearInterval(intervalID);

   }

   intervalID = setInterval(this, "run", DELAY_TIME);

  } else {

   if ((getTimer()-delayTime)<DELAY_TIME) {

    _mc.dispatchEvent({target:_mc, type:&#39;onDClick&#39;});

   }

   delayTime = null;

  }

}

private function run():Void {

  if (delayTime) {

   _mc.dispatchEvent({target:_mc, type:&#39;onClick&#39;});

   delayTime = null;

   clearInterval(intervalID);

  }

}

public static function init(mc:UIObject) {

  var dClick = new DBClick(mc);

}

}

使用方法:

--------------------

代码:
import DBClick;

DBClick.init(_btn);

_btn.addEventListener(&#34;onDClick&#34;, this);

_btn.addEventListener(&#34;onClick&#34;, this);

function onDClick()

{

_btn.label=&#34;你刚才双击了我&#34;

}

function onClick()

{

_btn.label=&#34;你刚才单击了我&#34;

}

在FLASH的V2组件中获取双击事件:

在场景中拖入一个LIST组件命名为List_lb

// 在主帧上加入如下代码

var lastSel&#101;cted;

function endClickTimer(){

clearInterval(clickInterval);

clickInterval = null;

}

//定义调用函数

function change(){

var sel&#101;cted = List_lb.sel&#101;ctedIndex;

if(clickInterval != null &amp;&amp; sel&#101;cted == lastSel&#101;cted){

trace(&#34;Double Clicked&#34;);

endClickTimer();

}else{

if(clickInterval != null){

endClickTimer();

}

clickInterval = setInterval(this,&#34;endClickTimer&#34;,250);

}

lastSel&#101;cted = sel&#101;cted;

}

List_lb.dataProvider = new Array(1,2,3,4,5);

// 调用事件

List_lb.addEventListener(&#34;change&#34;,this);

一切都OK了,可以用在其它的任何组件上.

您的留言

*