package { import flash.display.Sprite; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.events.Event; import flash.events.MouseEvent; import flash.geom.ColorTransform; import flash.text.TextField; import flash.text.TextFieldAutoSize; public class MouseLeaveTest extends Sprite { private var tf:TextField; private var tf2:TextField; private var button:Sprite; private var pressColor:ColorTransform; private var upColor:ColorTransform; public function MouseLeaveTest() { pressColor = new ColorTransform(); pressColor.color = 0xFF8800; upColor = new ColorTransform(); upColor.color = 0x2F73F0; stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.TOP_LEFT; //背景 var bg:Sprite = addChild(new Sprite()) as Sprite; bg.graphics.beginFill(0xffffff, 0.5); bg.graphics.drawRect(0, 0, stage.stageWidth, stage.stageHeight); bg.graphics.endFill(); //メッセージ tf = addChild(new TextField()) as TextField; tf.text = "MOUSE_LEAVEイベント取れるかな"; tf.autoSize = TextFieldAutoSize.LEFT; tf.selectable = false; tf2 = addChild(new TextField()) as TextField; tf2.autoSize = TextFieldAutoSize.LEFT; tf2.selectable = false; tf2.y = tf.textHeight + 6; //ボタン button = addChild(new Sprite()) as Sprite; button.graphics.beginFill(0x444444, 1); button.graphics.drawRoundRect(0, 0, 100, 100, 10, 10); button.graphics.endFill(); button.x = button.y = 50; button.buttonMode = true; button.addEventListener(MouseEvent.MOUSE_DOWN, onPress); stage.addEventListener(MouseEvent.MOUSE_UP, onStageUp); stage.addEventListener(Event.MOUSE_LEAVE, onMouseLeave); } private function onPress(e:MouseEvent):void { tf2.text = "button>MouseEvent.MOUSE_DOWN"; button.transform.colorTransform = pressColor; } private function onStageUp(e:MouseEvent):void { tf2.text = "stage>MouseEvent.MOUSE_UP"; button.transform.colorTransform = upColor; } private function onMouseLeave(e:Event):void { tf.text = "マウスがSWF領域から外れました"; tf2.text = "stage>Event.MOUSE_LEAVE"; button.transform.colorTransform = upColor; stage.addEventListener(MouseEvent.MOUSE_MOVE, onMouseMove); } private function onMouseMove(e:MouseEvent):void { tf.text = "マウスがSWF領域内に入りました"; stage.removeEventListener(MouseEvent.MOUSE_MOVE, onMouseMove); } } }