スマートフォンやhtml5+CSS3など新技術に四苦八苦。jQuery、AjaxなどJavaScriptも難しいですね。そんなWebに悩む人のネタ帳です。

ActionScript3では、任意のMovieClipにリンクに設定した場合に、オーバー時にハンドカーソルになるように以下のように記述します。

var mc:MovieClip = new MovieClip();
mc.buttonMode = true;

同様にして、TextFieldにリンクを設定する場合ですが、テキストフィールドはbuttonModeの属性は持っていません。そこで、ハンドカーソルをセットしたムービークリップにテキストフィールドを追加します。

var mc:MovieClip = new MovieClip();
var tf:TextField = new TextField();
mc.buttonMode = true;
mc.addChild(tf);

ところがこれだけでは動作しないんです。つまづきました。。。

通常、テキストフィールドをオーバーするとテキスト選択するマウスカーソルになりますが、これが優先的に効いているのが原因のようです。そこで、子のマウス効果が無効になるようにmouseChildrenの設定を追加してあげます。

var mc:MovieClip = new MovieClip();
var tf:TextField = new TextField();
mc.buttonMode = true;
mc.mouseChildren = false;
mc.addChild(tf);

TextFieldは、alpha(アルファ)が効かないなど、AS3を利用する上では慎重に取り扱わないといけないようです。

このエントリーをはてなブックマークに追加

Comment

Comment Form

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Monthly Archives

Search