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>

  • 相关阅读:
    MySQL for mac使用记录
    Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结
    前端学数据库之基础操作
    前端CSS预处理器Sass
    ionic + cordova+angularJs 搭建的H5 App完整版总结
    HTML5的新语义化的标签
    angularJS- $http请求
    SEO优化---学会建立高转化率的网站关键词库
    当AngularJS POST方法碰上PHP
    从一个程序员的角度看——微信小应用
  • 原文地址:https://www.cnblogs.com/appleseed/p/1292262.html
Copyright © 2011-2022 走看看