テキストと切り離して考えられないのはキーボードだ。
そんな訳で、今回はKeyboardEventを調べてみる。
まずはキーボード入力のキャプチャを読む。
基本的にボタンとイベントでやったことと一緒。マウスとさほど変わりなし。
しかし「今キーが押されている状態かそうでないか」ということが判定できないようだ。あれ?前はできてなかったか?Flash / Flash / Keyを見るとKey.isDown()とかあるなー。このへんのメソッドどこ行った?Keyboardには無い…ダウングレード!!!!
ガッデーム、超ガッデーム。
Stageオブジェクトをキーイベントのブロードキャスタとしておくと、Flashの領域全体でキーをチェックできるらしい。逆に言えば、他のオブジェクトの場合は、そのオブジェクトにフォーカスが当たってないとイベントが発生しないということだ。
で色々試してみると、キーとキーコードの値と全然違う値が返ってくる。キーボード右側の記号のあたり。
ガッデーム!超ガッデーム!!
Σc ' _' ) < 流行るとでも思ってんのかそのフレーズ
それからテンキーのコードも返ってこないし、なんなんだよ。それもMacのみかよ。
ありえねーよ。ガキの使いじゃねーんだよ。ちゃんとやれよAdobeっ!!
キーとキーコード間のマッピングは、デバイスやオペレーティングシステムによって異なります。このため、キーマッピングを使用してアクションをトリガしないでください。代わりに、Keyboard クラスによって提供される事前定義された定数値を使って、適切な keyCode プロパティを参照します。
とか書いているが、Keyboardオブジェクトの定数には、キーボード右側の記号が用意されて無いんだよっ!!できねーことをやれってゆーな、お前はいじめっ子か!!!!
てなわけで、キーボードは相変わらず使いづらいし、前より使いにくくなっているようでもある。
前から思ってんだけどさ、Flashの開発者どもって、ユーザインタフェースをナメてるよ。オーサリング環境のUIも、ActionScriptの入力関連のオブジェクトも、勿論UIコンポーネントもさ!
はぁはぁ。
そんな訳で、テクスティオの入力部分をActionScript3.0で書き換えた。というか全面的に書き直した。
AS1からだと移植は楽じゃないよ。ほぼ全面書き換えになっちゃうよ。
でもソースの見通しは断然良くなるので、リファクタリングするつもりで書き換えるのはアリだよ。
えーと、以下は英字を打ち込むとローマ字変換で半角カナにするFlashムービー。
今日はここまで。
2008-04-15