flash on 2010-10-31

by uwi
♥0 | Line 45 | Modified 2010-10-31 23:22:37 | MIT License
play

ActionScript3 source code

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

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

    public class Test extends Sprite {
        private var _tf : TextField;
        private var _bmd : BitmapData;
        private var _mapR : Array;
        private var _mapG : Array;
        private var _mapB : Array;

        public function Test() {
            _tf = new TextField();
            _tf.width = 465;
            _tf.height = 465;
            addChild(_tf);

            _bmd = new BitmapData(465, 465, false, 0x000000);
            addChild(new Bitmap(_bmd));
            _bmd.perlinNoise(465, 465, 3, 2010, false, false, 4, false);
            addEventListener(Event.ENTER_FRAME, onEnterFrame);
            
//            _mapR = shuffle(0);
//            _mapG = shuffle(0);
            _mapB = shuffle(0);
        }
        
        public function shuffle(off : uint) : Array
        {
            var a : Array = new Array(256);
            var i : uint, j : uint;
            for(i = 0;i < 256;i++)a[i] = i<<off;
            for(i = 0;i < 7000;i++){
                j = Math.random() * 255;
                var d : uint = a[j]; a[j] = a[j+1]; a[j+1] = d;
            }

            /*
            for(i = 0;i < 256;i++)a[i] = i<<off;
            for(i = 0;i < 256;i++){
                j = Math.random() * (255 - i) + i + 1;
                var d : uint = a[i]; a[i] = a[j]; a[j] = d;
            }

*/            return a;
        }
        
        private var _step : Number = -999999;
        
        public function onEnterFrame(e : Event) : void
        {
//            _bmd.paletteMap(_bmd, _bmd.rect, new Point(), _mapR, _mapG, _mapB);
              _bmd.paletteMap(_bmd, _bmd.rect, new Point(), null, null, _mapB);
        }

        private function tr(...o : Array) : void
        {
            _tf.appendText(o + "\n");
        }
    }
}