forked from: パーティクル練習
forked from パーティクル練習 (diff: 11)
ActionScript3 source code
/**
* Copyright plus-tic ( http://wonderfl.net/user/plus-tic )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/bzUQ
*/
// forked from TFB's パーティクル練習
package
{
import flash.display.Sprite;
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.events.Event;
import flash.filters.GlowFilter;
import flash.geom.Point;
import flash.geom.Rectangle;
public class Main extends Sprite
{
private var hako:Array = [];
private var bd:BitmapData;
private var circle:BitmapData;
public function Main()
{
var maru:Sprite = new Sprite();
maru.graphics.beginFill(0xFF0000);
maru.graphics.drawCircle(5, 5, 2);
maru.graphics.endFill();
circle = new BitmapData(10, 10, true, 0x0);
circle.draw(maru);
circle.applyFilter(circle, circle.rect, new Point(), new GlowFilter(0xFFFFFF));
addChild(new Bitmap(bd = new BitmapData(stage.stageWidth, stage.stageHeight, false, 0x0)));
addEventListener(Event.ENTER_FRAME, onEnterFrame);
}
private function onEnterFrame(event:Event):void
{
var ball:Ball = new Ball();
ball.x = Math.random() * stage.stageWidth;
ball.y = 0;
ball.vy = Math.random() * 3 + 3;
hako.push(ball);
bd.fillRect(bd.rect, 0x0);
for (var i:int = 0; i < hako.length; i++)
{
ball = hako[i];
ball.y += ball.vy;
bd.copyPixels(circle, circle.rect, new Point(ball.x, ball.y), null, null, true);
if (ball.y >= stage.stageHeight + 10)
{
hako.splice(i--, 1);
}
}
}
}
}
class Ball
{
public var x:Number;
public var y:Number;
public var vx:Number;
public var vy:Number;
}
