forked from: flash on 2010-4-28

by hacker_3q88gl5n forked from flash on 2010-4-28 (diff: 19)
hacker_449ucqia's http://wonderfl.net/c/cQa2 sanshou    
♥0 | Line 93 | Modified 2010-05-04 15:54:46 | MIT License
play

ActionScript3 source code

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

// forked from hacker_3q88gl5n's flash on 2010-4-28
// hacker_449ucqia's http://wonderfl.net/c/cQa2 sanshou    
package {
	import flash.display.MovieClip;
    import flash.display.Sprite;
    import flash.events.MouseEvent;
    import flash.events.Event;
   
    

   public class MouseOnBall extends Sprite { 
        private var _button:MyButton;
        private var circleContainer:Array = [];
        private var circle:Circle; 

        public function MouseOnBall() {
            // ボタンのインスタンスを生成 
            _button = new MyButton();
             
            _button.addEventListener(MouseEvent.MOUSE_OVER, onMouseOver); 
            _button.addEventListener(MouseEvent.MOUSE_OUT, onMouseOut); 
            _button.addEventListener(MouseEvent.MOUSE_UP, addCircle);
            //_button.addEventListener(MouseEvent.MOUSE_DOWN, removeCircle);

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

            // ボタンの位置を設定 
            _button.x = 425; 
            _button.y = 425; 
        
        addEventListener(Event.ENTER_FRAME, enterFrameHandler);
        }

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

        private function onMouseOut(e:MouseEvent):void 
        { 
            _button.out(); 
        }
        
        private function addCircle(e:MouseEvent):void
        {
        	    
        	    var circle:Circle = new Circle(10);
        	    
        	    circleContainer.push(circle);
        	    addChild(circle);
        	    
        	    circle.alpha = 0.5;
            circle.vx = Math.ceil(Math.random()*3)+2;
            circle.vy = Math.ceil(Math.random()*3)+2;
            
            circle.x = 465 / 2
            circle.y = 465 / 2

        }
        //private function removeCircle(e:MouseEvent):void {
		//removeChild(circle);
		//}
        	private function enterFrameHandler(e:Event):void
        	{
        	    var i:int;
			var circle:Circle;
			for(i=0; i<circleContainer.length; i++){
				circle = circleContainer[i];
        	  
        	  circle.move();
        	  
        	  if (circle.x > 465 - 5 || circle.x < 0 + 5) {
        	   	circle.vx *= -1;
        	  
        	  }
        	  if (circle.y > 465 - 5 || circle.y < 0 + 5) {
        	   	circle.vy *= -1;
        	  }

        	   	}   	
        }
    } 
} 
import flash.display.Sprite;

class Circle extends Sprite {
	public var vx:Number;
	public var vy:Number;
	public var radius:Number;
	//konstorakuta
	public function Circle(_radius:Number, _fillColour:uint = 0x00FF99) {
		
		graphics.beginFill(_fillColour);
		graphics.drawCircle(0 ,0 , _radius);
		graphics.endFill();
		
		radius = _radius
		
	}
	
	public function move():void {
		x += vx;
		y += vy;
	}
}
import flash.display.Sprite; 

class MyButton extends Sprite { 
    private var _over:Sprite; 
 
    public function MyButton () {
    	    
    	    graphics.beginFill(0x333333);
    	    
    	    graphics.drawRoundRect(0, 0, 15, 15, 5);
    	    graphics.endFill();
    	    
    	    _over = new Sprite();
    	    _over.graphics.beginFill(0x00FF99);
    	    _over.graphics.drawRoundRect(0, 0, 15, 15, 5);
    	    _over.graphics.endFill();
    	    _over.visible = false;
    	    
    	    addChild(_over);
    	    buttonMode = true;
    }
        
    	public function over():void {
    		_over.visible = true;
    	}    
    	
    	public function out():void {
    		_over.visible = false;
    	}		
}