RIAトピックス
リッチクライアント/RIAを主テーマに取り扱います。Flex、Ajax、AIR、Silverlight、JavaFX、etc。
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

【_level0.CUPPY】wmode=transparent で全角テキスト入力するには…
http://level0.cuppy.co.jp/2007/05/wmodetransparent.php

SWFをHTMLに乗せる時、その背景色は
大体はFlex特有のグレイになってしまうのですが、
(bgcolor属性を指定すれば、その指定した色になる)
HTMLに記述するSWF読込のタグで
「wmode」という属性に対して「transparent」と指定すると
HTMLの色をそのまま背景色として表示させることが出来ます。

でもこの指定、ちょっと弱点があって
「transparent」指定をすると、
Flashで日本語入力が使えなくなってしまうのです。
以前から割と有名なFlash Player自体のバグらしいんですが、
この度、私もこのバグと戦うことになりました。

ログイン機能を持つFlexの画面で、
日本語入力の間はいくらキーボードを叩いても
ブラウザがIEだとレイアウトが崩れる、
FireFoxに至ってはTextInputには一文字も入力されない、
という事象が発覚し、
「ユーザーがパニックになるからなんとかしろ!」
という指令をおおせつかったわけです。

Flex2では、TextInputなどの属性にIMEModeを指定することで
入力モードを制御することが出来ます

まずは、TextInputにフォーカスが当たった時に
この指定で入力モードを半角英数に変換するように
してみたんですが、結果は×。

実際には「日本語入力を受け付けない」というバグではなく、
「IME入力を受け付けない」というバグだったようです
Flex2の機能では、
「IME入力モードを半角英数に変更する」
ということしかできないみたいで、
これでは当該の事象を解決できませんでした。

で、次に行ったのが、
IME機能自体を無効化する、と言う対策です。
TextInputに対して
focusInイベントとkeyDownイベントに
「IME.enabled = false」を、
focusOutイベントに「IME.enabled = false」を設定しました。

<mx:TextInput id="id" focusIn="IME.enabled = false" keyDown="IME.enabled = false" focusOut="IME.enabled = true"/>

こちらはおかげさまでうまく動作し、
常に対象のTextInputに対して直接入力のみを
行えるようにできました。あ~~~、よかった。

そもそもHTMLのwmode指定を消せば
当該の現象は発生しなくなるのですが、
それを行うとデザインが破綻する為、できなかったんです。

ふざけたデザインにするから、こんな苦労をする羽目に…。
毎度の事ながら、デザイン部門に振り回された一件でした。



ヨウイチ
スポンサーサイト

テーマ:プログラミング - ジャンル:コンピュータ

【Shigeru-Nakagaki.com】AIR で FLV を開いて、タグを取得したり MP3 で保存したり
http://shigeru-nakagaki.com/index.cfm/2007/10/25/20071025-MAX%20Europe-Presentation-files-online

おぉっ!!これいいっすね。
私、今ニコニコ動画にハマってるんで(特に「歌ってみた」に)
こんな機能があるととても嬉しいです。
MP3として保存できる、ってところがサイコー!!

…知らない人のために念のため。
YouTubeやニコニコ動画で公開されている動画は
全てFLVデータです。
ニコ動の「コメント」とか、割り込みとかは
Flashではない別の機能らしいですけどね。
どうやってんでしょう、あれ?



ヨウイチ

テーマ:プログラミング - ジャンル:コンピュータ

copyright © 2005 RIAトピックス all rights reserved.
Powered by FC2ブログ.
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。