VRML響應鍵盤事件——KeySensor/KbdSenSor擴展節點

KeySensor、KbdSensor是在vrml97標準之外擴展的節點,目前已經正式收入到X3D的標準當中,主要用於響應用戶鍵盤按鍵操作,來對你的程序進行任意的控制。BS/Blaxxun瀏覽器對應的是KeySensor節點,Contvrml瀏覽器(插件)對應的是KbdSensor.

 

以KeySensor爲例,首先來看一個例子,按下A鍵,發出聲音:

 

 

KeySensor不斷的檢測用戶的鍵盤輸入,一旦有字符鍵按下,KeySensor便獲得這個字符的UTF-8編碼值,將之轉換爲10進制整數,通過事件出口keyPress發送出來,通過路由傳遞到腳本節點keyscript的事件入口keynum,這個事件入口一旦接收到值,腳本節點就會執行這個事件入口的同名函數function keynum(value)。

 

域 描述,以KeySensor爲例,KbdSensor類似:

 

eventsProcessed

如果設置爲TRUE,瀏覽器的默認鍵盤動作將不被執行,這個標誌位事件告知瀏覽器所有的事件將被keySensor節點處理。

enabled

設置允許使用這個傳感器的標誌

keyPress

這個事件出口在鍵盤上的任意字符按鍵被按下的時候發生,它的值是用戶按下的鍵所代表的UTF-8字符的十進制整型數值

keyRelease

這個事件出口在鍵盤上的任意字符按鍵被釋放的時候發生,它的值是用戶釋放的鍵所代表的UTF-8字符的十進制整型數值

actionKeyPress

當任意非字符鍵被按下時產生,它的值請對應參考下表

actionKeyRelease

當任意非字符鍵被釋放時產生,它的值請對應參考下表

shiftKey_changed

shift鍵狀態改變時發送,按下爲TRUE,釋放爲FALSE

controlKey_changed

ctrl鍵狀態改變時發送,按下爲TRUE,釋放爲FALSE

altKey_changed

alt鍵狀態改變時發送,按下爲TRUE,釋放爲FALSE

isActive

活動標誌,當有事件發生時爲TRUE

character

在用戶按下任意字符鍵時發送出這個字符鍵所代表的字符

 

ActionKey編碼,KbdSensor與其不同,可用print()函數測試;

 

Key

Value

Home

1000

End

1001

PageUp

1002

PageDown

1003

Up

1004

Down

1005

Left

1006

Right

1007

F1-F12

1008-1019

 

 

用KbdKensor類似,注意鍵盤值和KeySensor的不一樣,幫助文檔在http://www.parallelgraphics.com/developer/products/cortona/extensions/keyboard/

發佈了8 篇原創文章 · 獲贊 6 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章