forked from: マウスイベントを使ったボタン(PRACTICE 1-3-4)

by _shimizu forked from マウスイベントを使ったボタン (diff: 48)
♥0 | Line 69 | Modified 2009-12-25 14:12:42 | MIT License
play

ActionScript3 source code

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

// forked from 9re's マウスイベントを使ったボタン
package {
	import flash.display.MovieClip;
    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, onMouseClick);
            

            // 表示リストに追加 
            addChild(_button); 

            // ボタンの位置を設定 
            _button.x = 182; 
            _button.y = 50; 
        } 

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

        private function onMouseOut(e:MouseEvent):void 
        { 
            _button.out(); 
        } 
        private function onMouseClick(e:MouseEvent):void
        {
        		_button.click();
        }
    } 
} 

import flash.display.Sprite; 
import flash.display.MovieClip;
import flash.filters.GlowFilter;

class MyButton extends Sprite { 
    //private var _over:Sprite; 
    private var _over:Object = {red:null,blue:null};
    public function MyButton () { 
        // 描画色を#666666に設定 
        graphics.beginFill(0x333333); 
        // 角丸の長方形を描画 
        graphics.drawRoundRect(0, 0, 100, 22, 15); 
        graphics.endFill(); 

        // マウス・オーバー時に表示させるSpriteのインスタンスを生成 
        _over['red'] = new Sprite(); 
        _over['bule'] = new MovieClip();
        // 描画色を赤#ff0000に設定 
        _over['red'].graphics.beginFill(0xff0000); 
        _over['bule'].graphics.beginFill(0x0000ff); 
        // 角丸の長方形を描画 
        _over['red'].graphics.drawRoundRect(0, 0, 100, 22, 15); 
        _over['red'].graphics.endFill(); 

        _over['bule'].graphics.drawRoundRect(0,0,100,22,15);
        _over['bule'].graphics.endFill(); 
        
        _over['red'].filters = [new GlowFilter(0xff0000,0.5,30,30,1,1)];
        _over['bule'].filters = [new GlowFilter(0x0000ff,0.5,30,30,1,1)];
        
        _over['bule'].alpha = 0.5;
        
         // 非表示に設定 
        _over['red'].visible = false; 
        _over['bule'].visible = false;
        


        
        // 表示リストに追加 
        addChild(_over['red']); 
        addChild(_over['bule']);

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

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

    public function out():void { 
        // マウス・オーバー時の画像を非表示 
        _over['red'].visible = false; 
    } 
    public function click():void{
    		if(_over['bule'].visible){
    			_over['bule'].visible = false;	
    		}else{
	    		//_over['red'].visible = false;
 	   		_over['bule'].visible = true;	
    		}
    }
}