KeyUpイベントは、キーボードを離した時に発生します。KeyDownイベントを処理開始の契機、KeyUpイベントを処理終了の契機とすることで、ハードウェアによるトリガー操作のような表現をすることができます。
iOS版
ハードウェアキーボードの操作によるKeyUpイベントを利用するには、iOS 13.4以降のOSが必要です。
Eventオブジェクトには以下の子オブジェクトが付加されています。
型 |
名前 |
説明 |
---|---|---|
Number |
ShiftKey |
Shiftキーが押されている場合は1、それ以外は0 |
Number |
CtrlKey |
Ctrlキーが押されている場合は1、それ以外は0 |
Number |
AltKey |
Altキーが押されている場合は1、それ以外は0 |
Number |
GuiKey |
プラットフォーム固有の装飾キーが押されている場合は1、それ以外は0 *1 Android版 iOS版 |
String |
Key |
押されたキー |
特殊キーに関しては後述の表を参照してください。
使用例
Function OnKeyDown(e) { if (e.Key == "G") { /* Gを押している間、カウントアップを行います */ count = 0; SetTimer(1.0); } } Function OnKeyUp(e) { if (e.Key == "G") { RemoveTimer(); } } Function OnTimer(e) { count++; print(count); }
Android版
キーの種類 |
格納される値 |
---|---|
Esc | "ESCAPE" *1 |
BackSpace | "BACK" *1 |
ENTER | "RETURN" *1 |
Space | "SPACE" *1 |
Insert | "INSERT" *1 |
Home | "HOME" *1 |
PageUp | "PRIOR" *1 |
Delete | "DELETE" *1 |
End | "END" *1 |
PageDown | "NEXT" *1 |
方向キー左 | "LEFT" *1 |
方向キー上 | "UP" *1 |
方向キー右 | "RIGHT" *1 |
方向キー下 | "DOWN" *1 |
テンキー 0〜9 | "NUMPAD0"〜"NUMPAD9" *1 |
テンキー . | "DECIMAL" *1 |
テンキー * | "MULTIPLY" *1 |
テンキー + | "ADD" *1 |
テンキー / | "DIVIDE" *1 |
テンキー - | "SUBTRACT" *1 |
NumLock | "NUMLOCK" *1 |
F1〜F12 | "F1"〜"F12" *1 |
ScrollLock | "SCROLL" *1 |
iOS版
キーの種類 |
格納される値 |
---|---|
Esc | "ESCAPE" *1 |
BackSpace | "BACK" *1 |
ENTER | "RETURN" |
Space | "SPACE" *1 |
Insert | "INSERT" *1 |
Home | "HOME" *1 |
PageUp | "PRIOR" *1 |
Delete | "DELETE" *1 |
End | "END" *1 |
PageDown | "NEXT" *1 |
方向キー左 | "LEFT" *1 |
方向キー上 | "UP" *1 |
方向キー右 | "RIGHT" *1 |
方向キー下 | "DOWN" *1 |
テンキー 0〜9 | "NUMPAD0"〜"NUMPAD9" *1 |
テンキー . | "DECIMAL" *1 |
テンキー * | "MULTIPLY" *1 |
テンキー + | "ADD" *1 |
テンキー / | "DIVIDE" *1 |
テンキー - | "SUBTRACT" *1 |
テンキーEnter | "SEPARATOR" *1 |
CapsLock | "CAPITAL" *1 |
NumLock | "NUMLOCK" *1 |
F1〜F12 | "F1"〜"F12" *1 |
ScrollLock | "SCROLL" *1 |
左Shift | "LSHIFT" *1 |
右Shift | "RSHIFT" *1 |
左Ctrl | "LCONTROL" *1 |
右Ctrl | "RCONTROL" *1 |
左Command | "LGUI" *1 |
右Command | "RGUI" *1 |
iOS版では、TextBox上でソフトウェアキーボードのEnterキーを入力することによってもイベントが発生しますが、実際にキーを離したことを検出しているわけではありません。
この時のKeyUpイベントはKeyDownイベントに対応させるために発生させています。
また、装飾キーが押されたかどうかの情報(ShiftKey、CtrlKey、AltKey、GuiKey)は常に0になります。
Biz/Browser SmartDevice v1.6.8以降ではTextBox上でハードウェアキーボードのEnterキーを入力した場合、キーを離す前にKeyUpイベントが発生し装飾キーが押されたかどうかの情報は常に0になります。
KeyUpイベントは、Biz/Browserの画面内でキーボードフォーカスがどのオブジェクトにあたっているかで、発生するキー操作の種類や、イベントの送信元となるオブジェクトが決まります。
KeyUpイベントの発生元オブジェクトは、オブジェクトにキーボードフォーカスがあたっている場合、そのオブジェクトが置かれているFormオブジェクトから発生します。キーボードフォーカスがどのオブジェクトにもあたっていない場合、最も上位のFormオブジェクトから発生します。
・文字入力で使用される特殊キー(BackSpaceなど)はIMEの種類やオブジェクトの状態の影響を強く受けるため、KeyUpイベントでは使用しないことを推奨します。
・OSにシステムキーやショートカットキーとして割り当てられているキーを使用すると操作性の混乱を招きますので使用しないことを推奨します(例:iOSではcommand+Hキーでホーム画面に移動します)。
・システムキーやショートカットキーとして割り当てられている場合(あるいは将来のために予約されている場合)、KeyUpイベントが発生しない場合があります。
・CapsLockやNumLockなど、キーに固有の意味のあるキーは、操作に混乱を招きますので使用しないことを推奨します。
・KeyUpイベントは、端末やOSが認識したキー操作に対して発生します。これらはキーボードのハードウェアの影響を受けます。ハードウェアによっては、キーの組み合わせによってBiz/BrowserでKeyUpイベントが発生しないことがあります。
・キーによっては、機種によってCtrl、Shift、Altキーと同時に押下したとき、別のキーとして認識されることがあります。これらの特殊なキーを利用する場合、実際に使用するキーボードで、KeyUpイベントが正しく発生することを必ず確認してください。
・ハードウェアとキーの組み合わせによっては、Ctrl、Shift、Altキーと同時に押下したにも関わらず、CtrlKey、ShiftKey、AltKeyが1($TRUE)とならないことがあります。
・キー押下にフォーカスのあたっているオブジェクトの種類により、KeyUpイベントが発生しないことがあります。
・Bluetoothキーボード等の外付けHID機器を使用した場合、OSの設定によらず英語配列のキーボードとして認識される場合があります。