海賊王をめざす男 マツです。こんにちは。

テキスト入力の希少なバグを発見しました。
といっても、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 の任意の場所にフォーカスを戻してあげることもできると思います。

HTML5飯