テキスト入力の希少バグ
海賊王をめざす男 マツです。こんにちは。
テキスト入力の希少なバグを発見しました。
といっても、Flash 開発者ならいずれ出あう可能性のあるバグです。
発生条件
Windows, IE, FlashPlayer 10,0,45,2 Debug
ここで注意してほしいのは、FlashPlayer 10 が Debug 版ということです。
そう、Flash 開発者の環境でしか起こり得ない現象なのです。
1. TextInput に日本語を入力します。
2. 次にブラウズでローカルにある画像を画面にロードします。
3. もう一度、TextInput に日本語入力してみてください。日本語が入力されず、英数字入力になります。
発生条件
Windows, IE, FlashPlayer 10,0,45,2 Debug
恐ろしいのは、[半角/全角]を押しても入力モードが変わらないこと、ずっと英数字のまま。
Flash エリアからフォーカスを外す(別のウィンドウをアクティブにしたりする)と日本語が入力可能になります。
他の Flash 開発者に頼んで確認してもらってもやっぱり発生。これは大変だ!
てんやわんやしてたら ディレクターが「僕のはならないけど」とすましているじゃないですか?
え、そんなはずはない!なんで!?
検証していったら、そうか僕らのプレーヤーは、Debug 版だからじゃないか?
ということに気がつきました。はっ
debug 版のみの開発者泣かせのバグですが、対応策として、FileReference で 画像をロード完了後に JS でフォーカスを Flash から外す用にしました。
ExternalInterface.call("function(){ focus(); }");
addCallback を使えば、Flash の任意の場所にフォーカスを戻してあげることもできると思います。