flash on 2010-2-11
♥0 |
Line 43 |
Modified 2010-02-11 20:38:00 |
MIT License
archived:2017-03-20 19:34:43
ActionScript3 source code
/**
* Copyright peacelife_wonder ( http://wonderfl.net/user/peacelife_wonder )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/moBk
*/
package {
import flash.display.Sprite;
import flash.events.Event;
public class BallFollowingMouse extends Sprite {
private var ballCount:uint = 50;
private var speed:Number = 0.2;
public function BallFollowingMouse() {
for ( var i:uint = 0; i < ballCount; i++){
addChild(new Ball(this,200)); //プライベートなクラスBallを丸で描く
}
addEventListener(Event.ENTER_FRAME, followMouse);
}
private function followMouse(eventObject:Event):void {
dispatchEvent(new BallEvent(BallEvent,FOLLOW, mouseX, mouseY, speed));
}
}
}
import flash.display.Sprite;
import flash.display.Graphics;
import flash.events.Event;
class Ball extends Sprite {
private const deceleration:Number = 0.2;
private var angle:Number;
private var radius:Number;
private var sizeRate:Number = 0.1;
public function Ball(timeline:Sprite, maxRadius:Number) {
var randamRate:Number = Math.random();
angle = 2 * Math.random();
radius = maxRadius * randomRate;
createBall(randomRate);
timeline.addEventListener(BallEvent.FOLLOW, follow);
}
private function createBall(randomRate:Number):void {
var myGraphics:Graphics = graphics;
myGraphics.beginFill(Math.floor(0xFFFFFF * randomRate) + 1;
myGraphics.drawCircle(0, 0, radius * sizeRate);
alpha = 1 - randomRate;
}
private function follow(eventObject:BallEvent):void {
var randomRate:Number = Math.random();
angle += eventObject.speed;
angle%=Math.PI*2;
var nX:Numbar=eventObject.targetX