`
libo_591
  • 浏览: 40123 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

使用Timer实现FLEX单击双击分离响应

    博客分类:
  • FLEX
 
阅读更多

一.背景

FLEX中使用Label组件,在触发双击的同时,必然会触发一次单击事件,这样造成的结果是客户体验性不好,所以决定想办法改进。

二.解决办法

1.       在单击事件中,进行单双击类型的判断,在双击事件中,继续处理双击事件

2.       在组件初始化中,加入如下代码

//此延迟时间必须大于双击判断时间,否则执行双击事件时,还是要触发单击事件

    Var clickDelayTimer:Timer = new Timer(1000);        

    clickDelayTimer.addEventListener(TimerEvent.TIMER,delayTime);

3.       单双击类型判断的代码

var time2:Number = new Date().getTime();//第二次点击的时间

var cha:Number = time2-firsttime;//firsttime为第一次点击的时间,起始为0

if(cha<500){//2次点击时间小于500毫秒,则认为为双击

      isDoubleClick = true;

      CursorManager.removeBusyCursor();

      var event2:MouseEvent =

new MouseEvent(MouseEvent.DOUBLE_CLICK,false,false);

      this.dispatchEvent(event2);//触发本组件的双击事件

}else{//为单击事件

      firsttime = time2;//当前时间作为第一次点击的时间

      CursorManager.setBusyCursor();

      clickDelayTimer.start();//启动timer,执行单击事件的逻辑

     }

三.总结

由以上解决问题的过程中可以看到,timer组件的延迟执行,是解决问题的核心点,正是由于其这个机制,使得此问题得以顺利解决

四.Timer组件的介绍

目前实际应用中,用到的地方

A. 当前台程序需要延迟一段时间

B. 代替大数据量的For循环,可以提高页面的客户体验

同时,灵活运用此组件,可以解决很多其他问题。此组件若使用不当,会造成内存泄露,因此使用时需注意,不再需要此 timer实例时,一定将其关闭。(另附内存管理文章一篇,见附件)

分享到:
评论

相关推荐

    C# winform 单击与双击事件同时存在例子

    在C# WinForm开发中,用户界面交互是一个关键部分,其中单击(Click)和双击(DoubleClick)事件是常见的用户输入响应。然而,标题提到的一个常见问题是:在同一个控件上,C# WinForm不支持同时处理单击和双击事件。...

    解决 MFC 的 双击 和 单击 存在的 缺陷

    然而,在处理用户输入事件时,尤其是在设计具有单击和双击功能的界面时,MFC库中存在一些固有缺陷,可能导致用户体验下降。本篇文章将深入探讨这些问题,并提供解决方案,帮助你优化你的MFC应用程序。 首先,让我们...

    使用Timer实现左右飘动的窗体

    本示例将详细讲解如何使用Timer组件来实现一个窗体左右飘动的效果。Timer组件是.NET Framework中用于定时触发事件的一个工具,非常适合于执行周期性的任务。 首先,我们需要在窗体中添加一个Timer组件。在Visual ...

    使用Timer插件 实现鼠标坐标显示

    在C# Winform应用程序中,实现鼠标坐标的动态显示,我们可以利用Timer控件来定期获取鼠标的位置信息,并将其更新到界面上。Timer插件在Windows Forms应用程序中是一种非常实用的工具,它可以在指定的时间间隔内触发...

    JAVA中的鼠标双击事件

    下面是用定时器延时单击事件实现鼠标双击事件,单击和双击事件互不影响的示例代码: ```java public class MyMouseListener extends java.awt.event.MouseAdapter { private static boolean flag = false; // 用来...

    CC2530按键SW1 单击双击测试双联继电器

    __interrupt void Timer1_int() { T1STAT &=~0x20; if(SW1 !=0 && Num !=0) { count++; } } void Scan() { if(SW1==0) { delay(100); if(SW1==0) { while(SW1==0); count=0; Num++; if(Num&gt;2) { ...

    c# 托盘双击不触发单击事件

    这个方法通过`Timer`组件区分单击和双击事件,确保了用户界面的响应符合预期。在`testDataGridViewClick`项目文件中,可能包含了实现这个功能的完整代码示例,你可以根据自己的需求进行调整和学习。 总的来说,通过...

    使用Timer组件实现倒计时_倒计时_C#_

    本文将详细讲解如何使用Timer组件来实现倒计时,并结合DateAndTime类的DateDiff方法来精确计算剩余时间。首先,让我们深入理解这两个关键知识点。 1. Timer组件: C#中的System.Windows.Forms.Timer或System....

    msp430 中断方式实现按键的单双击判断

    代码实现中使用的宏定义,例如KEY2SING和KEY2DOUB,分别代表单击和双击两种不同的按键类型。这些宏定义与KEY2FLAG和KEY2TYPE共同工作,用于区分和处理不同的按键状态。 最后,代码中也提到了移植性问题。由于MSP430...

    Spring的quartz和Timer实现定时

    在Java世界中,任务调度是十分重要的,Spring框架...希望这个简要的介绍能帮助你理解Spring中如何使用Quartz和Timer来实现定时任务。在实际开发中,根据项目的规模、复杂性和并发需求来评估选择哪种方法是最合适的。

    基于posix timer实现自有定时器模块

    最强大的定时器接口来自POSIX时钟系列,其创建、初始化以及删除一个定时器的行动被分为三个不同的函数:timer_create()(创建定时器)、timer_settime()(初始化...本代码基于posix timer,实现自己的定时器,简单易用。

    关于winform使用timer进行多线程操作的例子

    本例子重点介绍了如何利用`System.Timers.Timer`组件来实现这样的多线程操作,特别是针对网段ping功能的实现。`System.Timers.Timer`是一个异步定时器,它在单独的线程上触发`Elapsed`事件,避免了阻塞UI线程。 ...

    Flex 计时器源码 timer

    在Flex框架中,计时器(Timer)类是实现周期性任务调度的重要工具之一。本文将深入解析一个简单的Flex计时器示例代码,并详细介绍其工作原理、应用场景以及如何通过计时器来优化程序性能。 #### 一、Flex计时器概述...

    多个 timer 使用示例

    标题 "多个 timer 使用示例" 暗示我们即将探讨的是如何在编程环境中,特别是使用 Progress 4GL(通常简称为 PB,即 PowerBuilder)语言,有效地管理并使用多个计时器(timer)对象。Progress 4GL 是一种面向对象的...

    C# 使用Timer控件显示当前时间

    在代码编辑器中,双击`Timer`控件,Visual Studio会自动生成`Tick`事件的事件处理函数。示例代码如下: ```csharp private void timer1_Tick(object sender, EventArgs e) { // 获取当前时间 DateTime ...

    STM32F407 DAC + DMA + Timer 实现任意波形发生器

    STM32F407是意法半导体...总之,STM32F407 DAC+DMA+Timer实现的任意波形发生器是一种高效、灵活的工具,它利用了微控制器的硬件资源,实现了高速、实时的波形生成,对于教学、实验和产品研发具有很高的实用价值。

    -Timer实现两路频率和占空比可调的PWM.rar

    -Timer实现两路频率和占空比可调的代码源代码 默认两路,可删减路数,步骤见注释 不明白的看注释,注释详细 代码已经封装好,更改头文件即可更改相关接口 使用STM32单片机F1系列ZET6芯片,Timer定时器输出两路占空比...

    Jdk的Timer 实现定时器

    在提供的压缩包文件`ch08_timer`中,可能包含了一些示例代码,展示了如何使用`Timer`和`TimerTask`来实现进度条的更新或其他定时任务。通过学习和理解这些代码,开发者可以更好地掌握`Timer`类的用法,并将其应用到...

    PB9多Timer事件实例

    PB9多Timer事件实例是PowerBuilder 9.0中关于定时器(Timer)使用的深入探讨。在编程领域,定时器是一种常见的工具,用于在特定时间间隔执行某项任务,这在许多应用程序中都非常实用,例如数据刷新、定时提醒或者...

Global site tag (gtag.js) - Google Analytics