ローマ字・かな・親指シフト対応タイピングFlash
このページで紹介しているFlashはサーバー移転の影響で消えました。
その代わり「[日本語入力] ローマ字入力・かな入力 入門Flash」
http://itouhiro.hatenablog.com/entry/20130122/jpinput
を用意しました。
タイピングソフトを作りたいので、まず練習台として、入力した文字を表示してくれるフラッシュを作ったんだ。
名称:ロマかなニコ タイピング
URL: http://ai11.net/2010/romakananico/
動作環境
- Windows 98 以上。LinuxやMacで動作するかは未検証。
- Flash Player 9 か、それ以上。
- フォントは「メイリオ」が入っていればそれを使用。なくてもOK。
確認した動作環境
- Windows 98 + Opera 10.5 + FlashPlayer 9
- Windows XP + Firefox 3.6 + FlashPlayer 10
- Windows XP + Chrome 4.0 + FlashPlayer 10
[f:id:itouhiro:20080902172315g:image] なにか特色はあるのかい? 入力した文字を表示するだけ?
ほほぅ。親指シフト体験版にもなるね。
声が出るってのは、以前にもなかったっけ?
以前つくった http://d.hatena.ne.jp/itouhiro/20090318 でも発音してくれるね。でも、これは「かな入力」専用だった。
今回はいろいろパワーアップしたんだ。
パワーアップしたポイントは……
- 前のは「゛」とかを音声的にうまく扱えなかったけど、今回は「発声遅延」機能を導入して、ちゃんと扱うようにした。
- 声の種類も変更できる。
- ローマ字入力・かな入力・親指シフト(NICOLA)の変更は、設定ファイル切り替えだけで可能。
- 親指シフトの「同時打鍵判定」と「一回性シフト」(と勝手に呼んでるけど詳しくはWikipedia:シフトキーを参照)に対応。
- 画像をすべてビットマップではなくベクターにしたので、どれだけウィンドウ拡大しても画像がシャープ。
- [F6]でひらがな、[F7]でカタカナ、[F9]で全角英数字等のMS-IME互換の変換機能も搭載。
- ActionScript3.0で作成。コードの一部は http://wonderfl.net/c/87Iz で公開。
親指シフトの「同時打鍵判定」って?
これは、親指シフトの仕様だ。親指の位置にあるシフトキーを押すのが少し遅れても、「同時」にシフトを押したことにしてくれるんだ。
[f:id:itouhiro:20080902172316g:image] それは、どうかな……。
今回は、「シフト先行」機能というのを載せて、同時打鍵に対応したんだ。
ほんらいシフトを押すときは、文字キーを押す前に、シフトを先に押さなくてはいけないんだ。
でも人間だもの、シフトを押すのが遅れることがある。
そんなときも、以下の図のように「シフトキーを押したとき」だけ処理を変えて、シフトキーが先行して押されたかのように判定してくれる(以下の図では「親指左」がシフトキー)、これがシフト先行機能だよ。
これは……シフトキーを先行させるというより、文字キーの処理を遅らせてるんじゃないか。
そのとおりだよ。でも「文字キー遅延」ってあんましピンとこない名前だからさ。ようするにシフトキーだけ特別扱いしますよって機能だから、「シフト」を名前に入れたかったんだ。
でも、この機能は問題があったのさ。
オレが試したところ、250 ミリ秒を指定してしまうと「しゃ」と入力したつもりが「あこ」になる。「し」→「親指左+こ」と入力したつもりが、「し+親指左」→「こ」と判定されるんだ。
こうなってる。
シフト先行を 100 ミリ秒(0.1秒)に指定した場合、以下の図のように、正常に入力できる。
しかし、シフト先行を 250 ミリ秒(0.25秒)に指定した場合、以下の図のようにおかしなことになるんだね。
なるほどー。タイピングの早い人は 100ミリ秒でもこれが起こるかも。
そうなんだよ。
この「シフト先行」機能は、同時打鍵判定を実装するときの簡易的な方法なので、本格的に実装するならもっと別の方法をとったほうがよさそうだ。
もっと少ない数値にしたほうがいいね。50ミリ秒とか、いっそのこと 0 にするとか。
ん? 上のほうの最後の図で、親指シフトキーを押したままなのに、2つめの文字にシフトが効いてないよ。
それは親指シフトの「一回性シフト」のせいだよ。親指シフトでは、シフトキーを押したまま文字を一文字入力すると、そこでシフトキーの効力が途切れてしまうのだ。
シフトをそのまま押しっぱなしにしていても、もうシフトキーは効かない。
シフトキーの力を取り戻すには、シフトキーをいちど離す必要がある。
[f:id:itouhiro:20080902172315g:image] そんな仕様があるのか
そんな仕様のせいで、親指シフトは 1文字打つたびにシフトキーを離しては押して を繰り返すから、親指を しじゅうバタバタさせるのが宿命なのだ。
[f:id:itouhiro:20080902172315g:image] へえ。
ところでさ、[全角半角]キーや [変換]キーを押しても反応がないね。
IME(かな漢字変換システム:MS-IMEやATOKやGoogle日本語入力など)を起動させるキーは反応しないようにしてある。
IMEが起動してしまうと、このフラッシュに文字入力が届かなくなるんだよ。IMEが文字入力を受け止めてそこから先に届かなくするから。
だから、IME起動しないように、そういうキーは無効にしているんだ。
もし[変換]キーを使いたいとかあれば、IMEの設定(IMEのプロパティ/全般/設定)を変更して、[変換]キーの役割をIMEと関係ないように変更すれば使えるようになるよ。
関連記事: タイピングFlashで小梅配列・ぶな配列を体験する
http://d.hatena.ne.jp/itouhiro/20100510
- 出版社/メーカー: クリプトン・フューチャー・メディア
- 発売日: 2010-04-30
- メディア: CD-ROM
おすすめ度の平均:
従来の初音ミクより難易度は高い