FLASH中的双击和单击事件 :: egoldy Flashblog

来源: BlogBus 原始链接: http://blogbus.com:80/blogbus/blog/diary.php?diaryid=256625 存档链接: https://web.archive.org/web/20040811033555id_/http://blogbus.com:80/blogbus/blog/diary.php?diaryid=256625


egoldy Flashblog FLASH is my life. <<<遍历对象的所有属性 | 首页 | ActionScript 2.0 动画库>>> 04/07/08 FLASH中的双击和单击事件 原文地址:http://www.erikbianchi.com/mtArc/000016.html 看到国外BLOG上的关于双击与单击的事件.我试了一下挺有意思.没准什么时候能用上. 原理就我们定义一个时间间隔,如果是双击那么一定会有一个时间间隔,如果不是双击那这个时间间隔就会是空的.基于以下这种情况,事情就变得比较的简单了. 在场景中放置一个按钮,在主帧上加入如下代码: //定入双击的速度间隔为250毫秒. var doubleClickSpeed = 250; //定义一个我们在操作过程的间隔变量 var clickInterval; // 定义一个清除clickInterval的函数.因为我们要不断的单击双击. function endClickTimer(){ clearInterval(clickInterval); clickInterval = null; } //当按钮或影片剪辑被单击或双击时,定义一个调用函数. function select(){ //如果clickInterval不为空则为双击 if(clickInterval != null){ trace("Double Clicked"); endClickTimer(); //否则视为单击. }else{ trace("Single Clicked"); clickInterval = setInterval(this,"endClickTimer",doubleClickSpeed); } } MyButton.onPress = function(){ select(); } 在上面的代码中我们在输出面板上看到双击时会输出单击和双击,这也许不是我们想要的.通常我们需要输出一种状态.: 将上边的代码做一下修改: //定入双击的速度间隔为250毫秒. var doubleClickSpeed = 250; //定义一个我们在操作过程的间隔变量 var clickInterval; // 定义一个清除clickInterval的函数.因为我们要不断的单击双击. function endClickTimer(){ clearInterval(clickInterval); clickInterval = null; } //定义一个获取单击的函数 function click(){ trace("Single Click"); endClickTimer(); } //当按钮或影片剪辑被单击或双击时,定义一个调用函数. function select(){ //如果clickInterval不为空则为双击 if(clickInterval != null){ trace("Double Clicked"); endClickTimer(); //否则视为单击. }else{ trace("Single Clicked"); clickInterval = setInterval(this," click ",doubleClickSpeed); } } MyButton. onRelease = function(){ select(); } 注意红色是我们修改过的地方.这时在输出面板上我们看到的应是正确的输出. 在FLASHMX 2004的V2组件中获取双击事件: 在场景中拖入一个LIST组件命名为List_lb // 在主帧上加入如下代码 var lastSelected; function endClickTimer(){ clearInterval(clickInterval); clickInterval = null; } //定义调用函数 function change(){ var selected = List_lb.selectedIndex; if(clickInterval != null && selected == lastSelected){ trace("Double Clicked"); endClickTimer(); }else{ if(clickInterval != null){ endClickTimer(); } clickInterval = setInterval(this,"endClickTimer",250); } lastSelected = selected; } List_lb.dataProvider = new Array(1,2,3,4,5); // 调用事件 List_lb.addEventListener("change",this); 一切都OK了,可以用在其它的任何组件上. 原文地址:http://www.erikbianchi.com/mtArc/000016.html egoldy 发表于 04/07/08 10:13 引用Trackback(0) | 编辑 评论 发表评论 最后更新 屏蔽MEDIAPLAYBACK的最大化按钮 yugop.com改版 3dmax 7来了! 比较全的FLASH链接 ActionScript 2.0 动画库 flash gamecoder游戏开发 FLASH MX 2004更新到7.2 玩转色彩和精美的VACTOR 在PS中自定义虚线笔刷 144个应用大量CSS技术的网站