zoukankan      html  css  js  c++  java
  • 減緩鍵盤連打事件的速度


    在 Flash Player 內,使用者按下某一鍵盤按鍵不放
    每隔 30~40 ms 就會連續送出鍵盤事件

    以 Flex List 為例
    <?xml version=”1.0″ encoding=”utf-8″?>
    <mx:Application xmlns:mx=”http://www.adobe.com/2006/mxml”
    layout=”horizontal” verticalAlign=”middle” preinitialize=”onPreinit();”>
    <mx:Script>
    <![CDATA[
    [Bindable]
    public var dataAry:Array = [];
    public function onPreinit():void{
    for (var i:Number = 0 ; i < 100 ; ++i) {
    dataAry.push(i);
    }
    }
    ]]>
    </mx:Script>
    <mx:List width=”100″ height=”100%” dataProvider=”{dataAry}”/>
    </mx:Application>
    只要使用者在 List 上按下 Keyboard Down
    按住不放持續一秒鐘,List 會被向下捲動 25~33 次左右
    有時候,並不需要這麼頻繁的鍵盤事件
    就可以利用 ActionScript 3.0 的事件功能加以攔截
    以下面的程式為例,在 Applcation Capture Phase 攔截 KeyDown 事件
    並紀錄最後一次 KeyDown 時間
    假如下一個 KeyDown 時間太接近
    便將該事件停止傳播
    連續鍵盤事件大約會被減慢一半左右
    <?xml version=”1.0″ encoding=”utf-8″?>
    <mx:Application xmlns:mx=”http://www.adobe.com/2006/mxml”
    layout=”horizontal” verticalAlign=”middle” preinitialize=”onPreinit();”>
    <mx:Script>
    <![CDATA[
    public var minKeyDownInterval:Number = 100;
    public var prevKeyDownTime:Number = 0;
    [Bindable]
    public var dataAry:Array = [];
    public function onPreinit():void{
    this.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown, true);
    for (var i:Number = 0 ; i < 100 ; ++i) {
    dataAry.push(i);
    }
    }
    public function onKeyDown(evtObj:KeyboardEvent):void {
    var currKeyDownTime:Number = getTimer();
    if (currKeyDownTime - prevKeyDownTime > minKeyDownInterval) {
    prevKeyDownTime = currKeyDownTime;
    return;
    } else {
    evtObj.stopImmediatePropagation();
    }
    }
    ]]>
    </mx:Script>
    <mx:List width=”100″ height=”100%” dataProvider=”{dataAry}”/>
    </mx:Application>

  • 相关阅读:
    python之路_初始mysql数据库
    python之路_并发编程之IO模型
    python之路_并发编程之协程
    python之路_并发编程之多线程2
    python之路_并发编程之多线程1
    python之路_并发编程之多进程3
    python之路_并发编程之多进程2
    python之路_并发编程之多进程1
    python之路_基于udp协议编程
    python之路_基于tcp协议的粘包现象
  • 原文地址:https://www.cnblogs.com/appleseed/p/1292262.html
Copyright © 2011-2022 走看看