×
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 00:30.
119 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×