« jQueryのoffset | メイン | ちょい絶Vol.3 »

TextFieldを含むSpriteをbuttonMode=trueにしてもカーソルが変わらない

del.icio.us it!   hatena bookmark
よく忘れるのでメモ。


SpriteにTextFieldをaddChildしてSpriteのbuttonModeをtrueにしても、マウスオーバーしたときにカーソルが変わらないことがある。
そんなときはTextFieldのmouseEnabledをfalseにすればおk


サンプル
このコンテンツには最新のFlashPlayerが必要です


package {

    import flash.display.*;
    import flash.text.*;
    import flash.events.*;
    
    [SWF(width="250", height="100", frameRate="12", backgroundColor="#000000")]    
    public class ButtonHandcursor extends Sprite {

        public function ButtonHandcursor() {

            stage.scaleMode = StageScaleMode.NO_SCALE;
            stage.align = StageAlign.TOP_LEFT;
            
            var btn1:Sprite = new Sprite();
            var btn2:Sprite = new Sprite();
            var txt1:TextField = new TextField();
            var txt2:TextField = new TextField();
            var tf:TextFormat = new TextFormat("_ゴシック", 15, 0x00bbff);
            
            txt1.defaultTextFormat = tf;
            txt1.autoSize = TextFieldAutoSize.LEFT;
            txt1.selectable = false;
            txt1.text = "ハンドカーソルにならない";
            btn1.buttonMode = true;            
            btn1.addChild(txt1);
            addChild(btn1);
            
            txt2.defaultTextFormat = tf;
            txt2.autoSize = TextFieldAutoSize.LEFT;
            txt2.selectable = false;
            txt2.mouseEnabled = false; // これ      
            txt2.text = "ハンドカーソルになる";
            btn2.buttonMode = true;
            btn2.addChild(txt2);
            addChild(btn2);
            btn2.y = 50;
            
        }

    }

}


トラックバック

このエントリーのトラックバックURL:
http://un-q.net/mt-tb.cgi/294

コメント (2)

成田祐輔:

この場合は

//txt2.mouseEnabled = false;
btn2.mouseChildren = false;

にしたほうがいいかもよ。

> 成田さん
なるほどー
ありがとうございまーす

コメントを投稿

crossreview