Input Devices and Gestures
出自OpenFace
第二十三章. 输入设备 和 Gestures
第四部分 进阶概念
目录 |
概况
这一章说明了在OpenLaszlo应用中融入键盘输入。
键盘输入
OpenFace应用中,有键盘“焦点”的视图可以进行键盘输入。LzFocus运行设置和控制焦点。与焦点相反的是“blur”,正如下面讨论的。
焦点和LzFocus
可以获得焦点的视图就是它的focusable属性值为真(缺省值)。当用户在可获得焦点的视图上输入按键时,那么该视图就成为焦点。若该视图不同于前一个焦点视图,失去焦点事件会传送给前一个焦点视图,并且获得焦点事件发送给新的焦点视图。 放置视图接受键盘事件,可以设置它的focusable属性值为‘false’。
焦点范围和焦点组
视图的焦点范围是它的focustrap属性值为‘true’的直接祖先节点,或者是canvas。视图的焦点组是焦点trap的子孙节点,而不是focustrap值也为‘true’的其他直接祖先节点的子孙节点中可获得焦点的视图的集合。
这个定义的效用在于在focustrap值为‘true’的视图的子节点中切换,只会在同一个view的子节点中切换,而不会切换到其它视图的子视图。
程序控制焦点组
焦点可以在程序中通过调用LzFocus.setFocus()方法来实现。
读取键值
读取键盘输入的键值的一种方法是使获得焦点的视图捕获被按键的编码。任何时候都只有一个焦点 视图。在该例中我们让该视图初始时获得焦点。
下例说明使用<LzFocus>可以是焦点视图接收键盘输入。
Example 23.1 读取键值
<canvas height="200">
<view width="100" height="100" bgcolor="0x333399" focusable="true"
oninit="LzFocus.setFocus(this)">
<handler name="onkeydown" reference="LzKeys" args="akeycode">
Debug.write( "Key pressed: " + akeycode );
</handler>
</view>
</canvas>

