In case Flash no longer exists; a copy of this site is included in the Flashpoint archive's "ultimate" collection.

Dead Code Preservation :: Archived AS3 works from wonderfl.net

星空もどき

n88とかでよくやった星っぽい何か
まあこんなにたくさんはだせなかったけど
よく考えてみれば星がこんなに高速で動いていたら困る
あーでもやっぱこれ好きだなぁ
Get Adobe Flash player
by NiFiZ 10 May 2009
    Embed
// n88とかでよくやった星っぽい何か
// まあこんなにたくさんはだせなかったけど
// よく考えてみれば星がこんなに高速で動いていたら困る
// あーでもやっぱこれ好きだなぁ

package {
    import flash.display.*;
    import flash.geom.*;
    import flash.events.*;
    import flash.text.TextField;
    import flash.filters.*;

    import frocessing.color.ColorHSV;
    [SWF(width="465", height="465", backgroundColor="0x000000")]

    public class Main extends Sprite {
        public function Main() {
            var bg:BackGround = new BackGround(465,465);
            addChild(bg);
        }
    }
}

    import flash.display.*;
    import flash.geom.*;
    import flash.events.*;
class Star
{
    public var rect:Rectangle,vy:uint,color:uint;
    public function Star( px:uint,py:uint,size:uint,vely:uint,col:uint )
    {
        rect = new Rectangle( px - size/2,py - size/2,size,size );vy = vely;color = col;
    }
    public function update( bmp:BitmapData ):void
    {
        rect.y += vy;
        if( rect.y >= bmp.rect.height + 10 )
        {
            rect.y = -10;
            rect.x = Math.random()*465 - rect.width / 2;
        }
        bmp.fillRect( rect, color );
    }
}

class BackGround extends Bitmap
{
    private var stars:Vector.<Star>;
    private var si:uint=0;
    public function BackGround( sx:uint,sy:uint )
    {
        stars = new Vector.<Star>();
        var color:uint;
        var i:int;
        for(i=0;i<200;++i )
        {
            // 色の指定は結構適当 赤緑青水色白黄色ぐらいにしぼったほうがいい(n88的な意味で
            color = ( uint((Math.random()*2) * 255) << 16 ) | (uint((Math.random()*2) * 255) << 8 ) | uint((Math.random()*2) * 255);
            stars.push( new Star( Math.random()*465,Math.random()*465,Math.random()*2+2,Math.random()*8+1,color) );
        }
        bitmapData = new BitmapData( sx,sy,false,0 );
        addEventListener(Event.ENTER_FRAME, update);
    }
    public function update(e:Event):void
    {
        var bmp:BitmapData = bitmapData;
        bmp.lock();
        bmp.fillRect( bmp.rect,0x000000 );
        var s:Star;
        for each( s in stars )
        {
            s.update(bmp);
        }
        bmp.unlock();
    }
}