forked from: flash on 2010-4-28
forked from flash on 2010-4-28 (diff: 19)
hacker_449ucqia's http://wonderfl.net/c/cQa2 sanshou
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;
}
}
