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>

  • 相关阅读:
    获取随机数
    性能测试工具
    Oracle 级联删除
    一些shell用法
    英文
    主题:【元宵赏灯】蛇年杭州元宵赏灯攻略(上城区、滨江区、下城区)
    CListCtrl 列表选中项非焦点时也是藍色
    ASCII码表
    杭州市公积金提取及相关知识
    ListBox设置水平滚动条
  • 原文地址:https://www.cnblogs.com/appleseed/p/1292262.html
Copyright © 2011-2022 走看看