forked from: forked from: 雪が降る

by unityweb
雪を降らせる。
必要になったので調べて作った。
♥0 | Line 54 | Modified 2012-01-28 01:30:53 | MIT License
play

ActionScript3 source code

/**
 * Copyright unityweb ( http://wonderfl.net/user/unityweb )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/mlfc
 */

// forked from hacker_go2oixju's forked from: 雪が降る
// forked from sake's 雪が降る
/*
    雪を降らせる。
    必要になったので調べて作った。
*/

package
{
    import flash.display.Sprite;

    [SWF(width="465", height="465", backgroundColor="0xffffff", frameRate="60")]
    public class snows extends Sprite
    {
        public function snows()
        {
            for(var k:int=0; k <1000 ; k++) addChild(new snow(stage.stageWidth, stage.stageHeight));
        }
    }
}

import flash.display.Graphics;
import flash.display.Sprite;
import flash.events.Event;
import flash.filters.BlurFilter;

class snow extends Sprite
{
    private var i:Number;
    private var k:Number;
    private var theta:Number;
    private var movieHeight:Number;
    private var movieWidth:Number;

    public function snow(w:Number, h:Number)
    {
        movieHeight=h;
        movieWidth=w;

        i=Math.random() * 1 + 0.9;
        k=-Math.PI + Math.random() * Math.PI;
        theta=0;

        graphics.beginFill(Math.random() * 0xfffff0);
        graphics.drawCircle(0, 0, 6);
        graphics.endFill();
        filters=[new BlurFilter()];

        scaleX=scaleY=Math.random() + 1;
        alpha=Math.random() + 0,1;

        x = -10 + Math.random() * movieWidth;
        y = -3 + Math.random() * movieHeight;

        addEventListener(Event.ENTER_FRAME, onFrame);
    }

    private function onFrame(e:Event):void
    {
        theta+=(k / 180) * Math.PI;
        x-=Math.cos(theta);
        y+=i;

        if (y >= movieHeight)
            y=-5
        if ((x >= movieWidth) || (x <= 0))
        {
            x = -10 + Math.random() * movieWidth;
            y = -5;
        }
    }
}