BREW应用是基本消息驱动的,当Applet载入后,它能通过消息来获取用户输入,这是通过Applet的HandleEvent函数来完成的。
发送给Applet的消息
因为BREW是一个消息驱动的环境。它要求消息能够及时被处理。这意味着Applet必需快速处理消息然后返回。在BREW中,在消息处理中一定时间的延迟可能导致Applet的退出以保护设备的正常运行。
当BREW将消息发送给Applet后,Applet通过在事件处理函数中返回TRUE(表示处理),FALSE(表示不处理)。当Applet必需将该事件发送给其它的事件处理函数时(比如控件),可以直接返回该事件处理函数。
Apple接收三个与事件处理相关的参数,分别作为事件处理函数HandleEvent的第二、第三、第四个参数。下面是一个事件处理函数的定义:
boolean HandleEvent(IApplet * pIApp, AEEEvent eCode, uint16 wParam,
uint32 dwParam)
第二个参数为AEEEvent事件类型,指明了Applet收到主事件类型。比如:EVT_APP_START, EVT_APP_STOP以及告警事件,可以参考BREW API查看全部的事件类型。
第三和第四分别为16位和32位与事件相关的数据,这些值是与具体的事件相关的。
关于事件处理的几点提示
在开发一个Applet时,只考虑和处理Applet需要处理的那些事件,通常情况下,你可以忽略大多数的事件。比如,开发一个游戏,只需要上、下、左、右、选择键作为输入,而对应的键盘处理再接收到数字键时可以返回FALSE以使它们获得缺省的BREW事件处理。
某些事件只有在Applet指明需要接收这些通知时才会发送到Applet。而关键事件在任何情况是不能被Applet忽略的,如EVT_APP_START, EVT_APP_STOP。注意在某些特定状态下收到这些关键事件的处理方法,Applet必需能够保存数据及上下文。
键盘事件发送给Applet的事件是EVT_KEY,16位参数指明了键值,键值是以unicode的方式发送的。参考BREW API查看全部的键值及符号。
例如,按下数字键2时,16位短参数包含了与字符2对应的unicode值,这使得在Applet中可以处理一个击键事件,使用设备配置器,可以修改设备发送给Applet的键值,设备OEM制造商决定了目标设备的键值定义。
当一个按下或释放时,IShell将向处于活动状态的Applet发送异步事件,下面列出了一个Applet可以接收到的击键事件及其描述:
键盘事件 |
描述 |
EVT_KEY_PRESS |
当按下键时Applet接收到此事件,参数为:
|
EVT_KEY_RELEASE |
当键被释放时Applet接收到此事件,参数为:
|
EVT_KEY |
在按下键或键被释放时发送,或者两种情况都发送,这取决设备制造商的选择,Applet应该在这个事件中处理键盘事件。因为不同的设备具体不同的键盘设置,在开发时应该在这些规范下编程。参数为:
|
BREW中处理Tab事件
在对话框中通过方向键来移动光标的方向取决于哪种控件具有焦点以及用户按了哪个方向(上、下、左、右)键。Tab方向,后面称为前移、后移Tab事件,取决于如何在代码和资源文件中如何设计。一种好的设计是将控件按其ID值大小顺序排列(从上到下,从左到右)。以这种方式对控件进行布局,当收到前移、后移Tab事件,光标将在控件以一种合乎逻辑的方式移动。在进行手工处理Tab事件最好也选择这种方式。
下面表格中的Menu控件发送EVT_CTL_TAB事件:
Menu控件 |
发送Tab事件 |
Soft Key |
Up = backward
Down = forward
|
Menu |
Left = backward
Right = forward
|
List |
Left = backward
Right = forward
|
Date |
Left = backward
Right = forward
|
Time |
Left = backward
Right = forward
|
Static(允许处理Tab事件时) |
在文本开头,Up = backward
在文本结尾,Down = forward
|
注意:如果光标在多行文本的最后一行最后一个字符位置,此时如果按向下键,则会在多行文本中插入一个换行符,如果光标在多行文件的最后一行但不是最后一个字符位置时,此时如果按向下键而且有一个Soft Key时,此时不会发送EVT_CTL_TAB事件,而Soft Key 将获得焦点。
分享到:
相关推荐
brew开发教程,从入门开始一步一步深入brew开发的全过程。
目录:(BREW 初级开发者 教程):第1章 BREW技术特点与发展趋势第2章 BREW SDK简介 第3章 BREW开发基础第4章 BREW手机简介 第5章 ISHELL第6章 IDISPLAY使用简介 第7章 ISTATIC第8章 IMENUCTL 第9章 IImage第10章 ...
BREW 是基于事件消息的单任务平台,介绍BREW 的消息机制的原理
关于brew开发的教程很少,好不容易找了一个,感觉不错,分享一下。
高通brew初级培训+培训资料+Brew开发技术文档.doc+海信BREW开发.pdf
BREW SDK介绍 BREW 的事件驱动机制 BREW 模块概念
对于学习BREW的同学很有用哦!本人刚接触Brew的时候就受益匪浅啊!
内含brew3.0API chm文件 解释详细方便查找 doc版深入brew开发方便查看和批注学习
brew 手机游戏开发实例brew 手机游戏开发实例brew 手机游戏开发实例brew 手机游戏开发实例
一份不错的BREW教程,比较深入的分析了BREW的实现原理和相关机制,希望对大家加深BREW认识有所帮助。
Mac下使用国内镜像安装Homebrew,解决brew在mac下安装软件下载慢的问题,zip包内已经替换了国内镜像文件, Mac OS 安装 brew 已经替换国内源,直接使用即可 1.把 brew_install 复制到 /users目录 2.安装 ruby ./...
介绍brew的开发,由入门到深入,是一本不错的brew教程!
第2章BREW3.1图像处理高级编程 第3章BREW多媒体接口 第4章IVocoder接口 第5章ICamera接口 第6章常用接口介绍 第7章BREW 3.1 文件系统 第8章BREW 3.1 SMS新接口使用方法 第9章BREW 语音呼叫业务 第10章BREW 3.1.5 ...
详细的描述了BREW开发细节,BREW各个接口,并通过代码详细解释
Brew开发简介.doc Brew开发简介.doc Brew开发简介.doc
深入brew开发,很好的参考进阶资料。对于学习C语言也很有一定的帮助。
使用BREW开发定位应用程序使用BREW开发定位应用程序使用BREW开发定位应用程序使用BREW开发定位应用程序使用BREW开发定位应用程序使用BREW开发定位应用程序
较详细透彻的介绍了brew平台开发,包括brew平台的原理,modue和应用程序的原理等。
深入研究BREW手机游戏开发BREW开发-海信(王宏兵),不仅只是介绍了brew的游戏开发。
深入brew开发pdf与源代码,给大家分享了