×
Namespaces

Variants
Actions

一些手机需使用EKeyRepeat代替EKeyDown获取重复按键事件

From Nokia Developer Wiki
Jump to: navigation, search
Article Metadata

测试基于
设备:: Nokia E71 (sw version 100.07.76), Nokia E66 (sw version 100.17.9)

兼容于
平台: S60 3rd Edition FP1
S60 3rd Edition FP1

文章
翻译:
huwell
最后由 hamishwillee 在 07 Aug 2012 编辑
  • 详细描述

大部分手机为重复按键生成TRawEvent::EKeyDown原始按键事件。但是Nokia E71和Nokia E66却在某些情况下生成TRawEvent::EKeyRepeat事件作为对重复按键的响应。


当系统向应用程序传递原始按键事件时,如在一个动画DLL的OfferRawEvent()方法中。大部分S60手机将生成TRawEvent::EKeyDown事件,无论是第一次按下还是后继连续按键事件。


但是如果在Nokia E71或Nokia E66上,动画DLL将在第一次按键发生时收到EKeyDown事件,而后继按键事件则为EKeyRepeat事件。如果代码只检查EKeyDown(因为这样的代码在模拟器和大部分手机上都能正确工作)那么将无法完整正常操作,按键事件会被忽略掉。


  • 解决方案

在原始事件的处理中,要同时检查EKeyDown和EKeyRepeat,并同样处理它们的响应。这样在E71和E66上即可正确工作。注意“按住”事件是要区别对待的,它不同于第一次按下和后继连续击键。可以通过检查按Down和Up的时间来判断。

This page was last modified on 7 August 2012, at 03:30.
125 page views in the last 30 days.
×