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を利用する上では慎重に取り扱わないといけないようです。
コメントする