- 2008-11-07 (金)
- Flash Lite 2.0 / 3.0
Flash Lite 3.0 では、キーコードが取得可能。ふと思いキーコードを取得するサンプルを作ってみる。
というのも、いろいろと検証している時に、上下キーのキーコードって実際にはどうなっているんだろうと思ったのがキッカケ。上下キーのイベントなどの対応範囲を知りたいと思って。
Flash Lite 3.0 なので、上記URLのコンテンツを閲覧できない機種もあると思う…(汗
とりあえず所持している実機の SH905i で試してみると下記のような結果となった。
| keyCode | keyAscii | chr() | 関連キー | |
|---|---|---|---|---|
| 決定 | 13 | 13 | ENTER | |
| 上 | 9 | 9 | TAB | |
| 下 | 9 | 9 | TAB | |
| 1 | 49 | 49 | 1 | |
| 2 | 50 | 50 | 2 | |
| 3 | 51 | 51 | 3 | |
| 4 | 52 | 52 | 4 | |
| 5 | 53 | 53 | 5 | |
| 6 | 54 | 54 | 6 | |
| 7 | 55 | 55 | 7 | |
| 8 | 56 | 56 | 8 | |
| 9 | 57 | 57 | 9 | |
| 0 | 48 | 48 | 0 | |
| * | 56 | 42 | * | |
| # | 51 | 35 | # |
多分、ここでポイントとなるのが「上」「下」キーだと思う。何故かキーコードが両方とも「9」となり「TAB」キーに相当する結果となった。
これは、Flash Lite コンテンツを PC で閲覧する際に、上は「SHIFT+TAB」、下は「TAB」に対応しているためのようだ。しかし実際に携帯で確認すると、上下キーの区別がつかない状態となっている。
もしかすると上キーは「SHIFT」も表示されるかなと思っていただけに残念…orz
あとはキャリアや機種によっても微妙に異なってくるのかなーとか思ったりもする(汗
結果的には、上下のキーイベント時には区別する判断がつかないので従来の手法で対応するしかないようだ…。ふーむ。なんだかなーという感じ。
ちなみに、このサンプルのコードはこんな感じ。とりあえずキーに関する情報は網羅しているはず。多分。きっと。
initKeySys();
initKeyEvent();
//システム機能
function initKeySys() {
k4 = "has4WayKeyAS:" + System.capabilities.has4WayKeyAS + "\n";
k4 += "hasMappableSoftKeys:" + System.capabilities.hasMappableSoftKeys + "\n";
k4 += "hasQWERTYKeyboard:" + System.capabilities.hasQWERTYKeyboard + "\n";
k4 += "softKeyCount:" + System.capabilities.softKeyCount + "\n";
}
//キーイベント
function initKeyEvent() {
var keyListener:Object = new Object();
keyListener.onKeyDown = function () {
k0 = Key.getCode();
k1 = Key.getAscii();
k2 = chr(Key.getAscii());
k3 = ""
if (Key.isDown(Key.SHIFT)) k3 += "SHIFT ";
if (Key.isDown(Key.TAB)) k3 += "TAB ";
if (Key.isDown(Key.END)) k3 += "END ";
if (Key.isDown(Key.HOME)) k3 += "HOME ";
if (Key.isDown(Key.SPACE)) k3 += "SPACE ";
if (Key.isDown(Key.UP)) k3 += "UP ";
if (Key.isDown(Key.DOWN)) k3 += "DOWN ";
if (Key.isDown(Key.ENTER)) k3 += "ENTER ";
if (Key.isDown(Key.PGUP)) k3 += "PGUP ";
if (Key.isDown(Key.PGDN)) k3 += "PGDN ";
if (Key.isDown(Key.BACKSPACE)) k3 += "BACKSPACE ";
if (Key.isDown(Key.CAPSLOCK)) k3 += "CAPSLOCK ";
if (Key.isDown(Key.CONTROL)) k3 += "CONTROL ";
if (Key.isDown(Key.DELETEKEY)) k3 += "DELETEKEY ";
if (Key.isDown(Key.ESCAPE)) k3 += "ESCAPE ";
if (Key.isDown(Key.INSERT)) k3 += "INSERT ";
if (Key.isDown(Key.LEFT)) k3 += "LEFT ";
if (Key.isDown(Key.RIGHT)) k3 += "RIGHT ";
var code = Key.getCode();
if (code == ExtendedKey.SOFT1) k3 += "SOFT1 ";
if (code == ExtendedKey.SOFT2) k3 += "SOFT2 ";
if (code == ExtendedKey.SOFT3) k3 += "SOFT3 ";
if (code == ExtendedKey.SOFT4) k3 += "SOFT4 ";
if (code == ExtendedKey.SOFT5) k3 += "SOFT5 ";
if (code == ExtendedKey.SOFT6) k3 += "SOFT6 ";
if (code == ExtendedKey.SOFT7) k3 += "SOFT7 ";
if (code == ExtendedKey.SOFT8) k3 += "SOFT8 ";
if (code == ExtendedKey.SOFT9) k3 += "SOFT9 ";
if (code == ExtendedKey.SOFT10) k3 += "SOFT10 ";
if (code == ExtendedKey.SOFT11) k3 += "SOFT11 ";
if (code == ExtendedKey.SOFT12) k3 += "SOFT12 ";
}
Key.addListener(keyListener);
}
この記事をブックマークしておく
コメント:0
トラックバック:0
- この記事のトラックバックURL
- http://god.xsrv.jp/__mt/mt-tb.cgi/1378
- トラックバックを受ける記事
- FL3 | 携帯のキーコードを調べてみる from 1ka2ka.com Flash & Action Script
