カラフル縞

by keno42 forked from getRandInt() (diff: 29)
unionのreactorに入っている便利ツールのひとつ
getRandInt(min:int,max:int):int
min以上max以下のランダムな整数を返します。
♥0 | Line 34 | Modified 2009-09-10 16:06:37 | MIT License
play

ActionScript3 source code

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

// forked from keno42's getRandInt()
// unionのreactorに入っている便利ツールのひとつ
// getRandInt(min:int,max:int):int
// min以上max以下のランダムな整数を返します。
package {
    import flash.display.*;
    import flash.events.Event;
    import net.user1.utils.getRandInt;

    public class FlashTest extends Sprite {
        private var dataNums:Array = [];
        private var MAX_NUM:int = 30;
        private var bmpData:BitmapData = new BitmapData(465, 465, false, 0);
        public function FlashTest() {
            // write as3 code here..
            for( var i:int = 0; i < MAX_NUM; i++ ){
                dataNums.push( new Array(i+1) );
            }
            addChild( new Bitmap(bmpData) );
            addEventListener( Event.ENTER_FRAME, onEnterFrame );
        }
        private var color:int = 0;
        private var count:int = 0;
        private function onEnterFrame(e:Event):void{
            count++;
            color = (int(255*(1-count/600))<<8) + int(255*(count/600));
            
            var endFlag:Boolean = true;
            for( var i:int = 0; i < MAX_NUM; i++ ){
                color += int(255/MAX_NUM)<<16;
                for( var j:int = 0; j <= i; j++ ){
                    if( int(dataNums[i][j]) <= 465 ) endFlag = false;
                    var rand:int = getRandInt(0, i);
                    bmpData.setPixel(dataNums[i][rand], 0.5*i*(i+1)+rand, color);
                    dataNums[i][rand] = int(dataNums[i][rand]) + 1;
                }
            }
            if( endFlag ) this.removeEventListener( Event.ENTER_FRAME, onEnterFrame );
        }
    }
}

Forked