flash on 2009-2-2
package
{
import flash.display.Sprite;
import flash.text.TextField;
import flash.utils.Timer;
import flash.events.*;
public class FlashTest extends Sprite
{
private var timer:Timer;
private var mouseDown:Boolean;
public function FlashTest()
{
timer = new Timer(10);
timer.addEventListener(TimerEvent.TIMER, timerHandler);
stage.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
stage.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
//stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler);
timer.start();
}
private function mouseDownHandler(event:MouseEvent):void
{
mouseDown = true;
}
private function mouseUpHandler(event:MouseEvent):void
{
mouseDown = false;
}
private function timerHandler(event:TimerEvent):void
{
if(mouseDown)
{
var x:Number = mouseX - 5 + Math.random() * 10;
var y:Number = mouseY - 5 + Math.random() * 10;
var r:Number = Math.random() * 5;
var col:Number = Math.random() * 0xFFFFFF;
var vx:Number = -10 + Math.random() * 20;
var vy:Number = Math.random() * -2;
var dot:Dot = new Dot(x, y, r, col, vx, vy);
addChild(dot);
}
}
}
}
import flash.display.Shape;
import flash.display.Sprite;
import flash.events.Event;
class Dot extends Shape
{
private var velocityX:Number;
private var velocityY:Number;
private static const GRAVITY:Number = .98;
private var radius:Number;
private var bounce:Number;
private var col:Number;
public function Dot(x:Number, y:Number, radius:Number, color:Number, velX:Number, velY:Number)
{
this.x = x;
this.y = y;
this.radius = radius;
col = color
bounce = 0.7 * Math.random();
velocityX = velX;
velocityY = velY;
graphics.beginFill(color);
graphics.drawCircle(0, 0, radius);
graphics.endFill();
addEventListener(Event.ENTER_FRAME, enterFrameHandler);
}
private function enterFrameHandler(event:Event):void
{
x += velocityX;
velocityX *= .9;
y += velocityY;
velocityY += GRAVITY;
if(y + velocityY +radius > stage.stageHeight)
{
if(velocityY >= 3)
{
y = stage.stageHeight - radius;
velocityY *= -bounce;
}
else
{
removeEventListener(Event.ENTER_FRAME, enterFrameHandler);
Sprite(parent).graphics.beginFill(col);
Sprite(parent).graphics.drawCircle(x, y, radius);
Sprite(parent).graphics.endFill();
Sprite(this.parent).removeChild(this);
//this = null
}
}
}
}