forked from: forked from: forked from: マウスイベントを使ったボタン

by hacker_9p8x8mco
♥0 | Line 52 | Modified 2010-02-13 15:03:57 | MIT License
play

ActionScript3 source code

/**
 * Copyright hacker_9p8x8mco ( http://wonderfl.net/user/hacker_9p8x8mco )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/wo2y
 */

// forked from hacker_zpkdl9ug's forked from: forked from: マウスイベントを使ったボタン
// forked from kappanuki's forked from: マウスイベントを使ったボタン
// forked from 9re's マウスイベントを使ったボタン
package {
	import flash.display.Sprite;
	import flash.events.MouseEvent;
	import flash.display.MovieClip;
	
	public class MouseClick extends Sprite
	{
		private var _button:MyButton;

		//コンストラクタ
		public function MouseClick()
		{
			// ボタンのインスタンスを生成
			_button = new MyButton();
			_button.addEventListener(MouseEvent.CLICK, onMouseOver);
			_button.addEventListener(MouseEvent.MOUSE_OUT, onMouseOut);
			
			// 表示リストに追加
			addChild(_button);

			// ボタンの位置を設定
			_button.x = Math.floor((stage.stageWidth/2) - (_button.width/2));
			_button.y = Math.floor((stage.stageHeight/2) - (_button.height/2));
		}

        private function onMouseOver(e:MouseEvent):void
        {
            _button.over();
        }
        private function onMouseOut(e:MouseEvent):void
        {
            _button.out();
        }
    } 
} 

import flash.display.Sprite;

class MyButton extends Sprite
{
	private var _over:Sprite; 

	//コンストラクタ
	public function MyButton ()
    {
        // 描画色を#666666に設定
        graphics.beginFill(0x333333);
        // 角丸の長方形を描画
        graphics.drawRoundRect(0, 0, 100, 100, 10);
        graphics.endFill();

		// マウス・オーバー時に表示させるSpriteのインスタンスを生成 
		_over = new Sprite(); 
		// 描画色を赤#ff0000に設定 
		_over.graphics.beginFill(0xff0000); 
		// 角丸の長方形を描画 
		_over.graphics.drawRoundRect(0, 0, 100, 22, 0); 
		_over.graphics.endFill(); 
		// 非表示に設定 
		_over.visible = false; 
		// 表示リストに追加
		addChild(_over);

		// マウス・カーソルを手のカーソルに変える
		buttonMode = true;
	}

	public function over():void
    { 
        // マウス・オーバー時の画像を表示
		_over.visible = true;
	}

	public function out():void
	{
		// マウス・オーバー時の画像を非表示
		//_over.visible = false;
		_over.alpha -= .05;
	}
}