マウスイベントの練習
マウスイベントを使ったボタン(010305)をforkさせていただく。
マウスオーバー、マウスアウトで画像の切り替え、とともにクリック、ダブルクリックでさらに画像が切り替わるようにしようとした。が、動かないじゃないか。ダブルクリックが効かない!
実用的なのは、マウスオーバーしてクリックぐらいだろうから、まあいいか。
/// forked from 9re's マウスイベントを使ったボタン package { import flash.display.Sprite; import flash.events.MouseEvent; public class MouseClick extends Sprite { private var _button:MyButton; public function MouseClick() { _button = new MyButton(); _button.addEventListener(MouseEvent.MOUSE_OVER, onMouseOver); _button.addEventListener(MouseEvent.MOUSE_OUT, onMouseOut); _button.addEventListener(MouseEvent.CLICK, onClick); _button.addEventListener(MouseEvent.DOUBLE_CLICK, onwClick); addChild(_button); } private function onMouseOver(e:MouseEvent):void { _button.over(); } private function onMouseOut(e:MouseEvent):void { _button.out(); } private function onClick(e:MouseEvent):void { _button.click(); } private function onwClick(e:MouseEvent):void { _button.wclick(); } } } import flash.display.Sprite; class MyButton extends Sprite { private var _over:Sprite; private var _click:Sprite; public function MyButton () { graphics.beginFill(0xffa07a); graphics.drawCircle(250, 200, 100); graphics.endFill(); graphics.beginFill(0x90ee90); graphics.drawCircle(200, 200, 20); graphics.endFill(); _over = new Sprite(); _over.graphics.beginFill(0x100008b); _over.graphics.drawCircle(250, 200, 100); _over.graphics.endFill(); _over.graphics.beginFill(0xff0000); _over.graphics.drawCircle(300, 200, 20); _over.graphics.endFill(); _over.visible = false; _click = new Sprite(); _click.graphics.beginFill(0xffff00); _click.graphics.drawCircle(250,200,90); _click.graphics.endFill(); _click.visible = false; addChild(_over); addChild(_click); buttonMode = true; } public function over():void { _over.visible = true; } public function out():void { _over.visible = false; } public function click():void { _click.visible = true; } public function wclick():void { _click.visible = false; } }