flash on 2009-7-11
/**
* Copyright ciel_to ( http://wonderfl.net/user/ciel_to )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/sXbC
*/
package
{
import flash.display.Sprite;
import flash.events.Event;
public class Mu0710 extends Sprite
{
private var _leaf:Array = [];
private var _apple:Array = [];
public function Mu0710()
{
init();
addEventListener(Event.ENTER_FRAME,loop);
}
private function init():void
{
var i:int;
for (i = 0; i < 1000; i++)
{
var rx:Number = Math.random()*stage.stageWidth;
var ry:Number = Math.random() * 100;
var leaf:Leaf = addChild(new Leaf(rx,ry)) as Leaf;
_leaf.push(leaf);
}
for(i=0; i<10; i++)
{
var a:Apple = addChildAt(new Apple(),Math.random()*1000) as Apple ;
a.x = Math.random() * stage.stageWidth;
a.y = Math.random() * 100;
_apple.push(a);
}
}
private function loop(e:Event):void
{
var i:int;
for(i=400; i<500; i++)
{
_leaf[i].Move();
}
var len:uint = _apple.length;
for(i=0; i<len; i++)
{
_apple[i].Move();
}
}
}
}
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.Shape;
import flash.display.Graphics;
import flash.utils.Timer;
import flash.events.TimerEvent;
import flash.events.Event;
class Leaf extends Bitmap
{
private var _timer:Timer;
private var bx:Number;
private var _x:Number;
private var _amp:Number;
private var _angle:Number;
private var _v:Number;
private var _moveFlg:Boolean;
public function Leaf(dx:Number, dy:Number)
{
this.x = dx;
this.y = dy;
_x = dx;
_v = Math.random()*1+1;
_amp = Math.random()*10;
_angle = Math.random()*360;
draw();
var lifeTime:uint = Math.random()*20000+1000;
_timer = new Timer(lifeTime, 1);
_timer.addEventListener(TimerEvent.TIMER, onTimer);
_timer.start();
}
private function draw():void
{
var g:Shape = new Shape();
with(g.graphics)
{
beginFill(0x7DEA88);
drawEllipse(3.4,0, Math.random()*8+2, Math.random()*8+2);
endFill();
beginFill(0x4DE640);
drawEllipse(1.7,1.7,Math.random()*8+2, Math.random()*8+2);
endFill();
beginFill(0x36BD1E);
drawEllipse(0,0,Math.random()*8+2, Math.random()*8+2);
endFill();
}
var bmd:BitmapData = new BitmapData(15,15,true,0x00);
bmd.draw(g);
this.bitmapData = bmd;
g.graphics.clear();
g = null;
}
private function onTimer(event:TimerEvent):void
{
_timer.stop();
_timer.removeEventListener(TimerEvent.TIMER,onTimer);
_timer = null;
_moveFlg = true;
}
public function Move():void
{
if(_moveFlg)
{
_angle += 5;
this.x = _x + _amp * Math.sin(_angle*Math.PI/180);
y += _v;
if (y > 410)
{
this.y = Math.random()*-100;
// _moveFlg = false;
}
}
}
}
class Apple extends Shape
{
private var _angle:Number = 0;
private var _g:Number = 5;
private var _add:Number = 0.3;
private var _prevY:Number=0;
private var _moveFlg:Boolean;
private var _timer:Timer;
public function Apple()
{
draw();
var lifeTime:uint = Math.random()*20000+5000;
_timer = new Timer(lifeTime, 1);
_timer.addEventListener(TimerEvent.TIMER, onTimer);
_timer.start();
}
private function draw():void
{
with(this.graphics)
{
graphics.beginFill(0xff2222);
graphics.drawCircle(0,0,13);
graphics.endFill();
}
}
private function onTimer(event:TimerEvent):void
{
_timer.stop();
_timer.removeEventListener(TimerEvent.TIMER,onTimer);
_timer = null;
_moveFlg = true;
}
public function Move():void
{
if(_moveFlg)
{
_g += _add;
this.y += _g;
if(this.y > 390)
{
this.y = 390;
_g *= -0.3;
}
if(this.y==_prevY&&this.x<600)
{
this.x +=3;
}
_prevY = this.y;
}
}
}