flash on 2010-9-30

by hacker_szoe51ih
♥0 | Line 101 | Modified 2010-09-30 02:04:36 | MIT License
play

ActionScript3 source code

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

package {
    import adobe.utils.CustomActions;
    import flash.display.*;
    import flash.events.*;
    import flash.filters.DisplacementMapFilter;
    import flash.geom.Matrix;
    import flash.geom.Point;
    import flash.net.*;
    import flash.system.*;
    import flash.utils.Timer;

    [SWF(width=465,height=465,backgroundColor=0xffffff,frameRate=60)]
    public class Main extends Sprite {
        
        public var objectSp:Sprite;
        public var objectSp2:Sprite;
        public var objectSp3:Sprite;
        public var ObjectBM:Bitmap;
        public var canvasBM:Bitmap;
        public var canvasBMD:BitmapData;
        public var mapBMD:BitmapData;
        public var mapBM:Bitmap;
        public var perlinNum:Number = 0;
        public var W:Number = stage.stageWidth;
        public var H:Number = stage.stageHeight;
        
        public var controlNumX:Number = 0;
        public var controlNumY:Number = 140;
        
        

        public function Main() {
            init();
        }
        
        public function init():void {
            
            var mtx:Matrix = new Matrix();
            mtx.createGradientBox(100, 100, -90 * (Math.PI / 180), 0, 0);
            
            objectSp = new Sprite();
            objectSp.graphics.beginGradientFill(GradientType.LINEAR, [0x0066cc, 0x0099ff], [1, 1], [0,  255], mtx,SpreadMethod.PAD);
            objectSp.graphics.drawRect(0, 0,W,H);
            objectSp.graphics.endFill();
            addChild(objectSp);
            objectSp.x = 0;
            objectSp.y = 220;
            
            objectSp2 = new Sprite();
            objectSp2.graphics.beginGradientFill(GradientType.LINEAR, [0x0066cc, 0x0099ff], [1, 1], [0,  255], mtx,SpreadMethod.PAD);
            objectSp2.graphics.drawRect(0, 0,W,H);
            objectSp2.graphics.endFill();
            addChild(objectSp2);
            objectSp2.alpha = 0.5;
            objectSp2.blendMode = BlendMode.MULTIPLY;
            objectSp2.x = 0;
            objectSp2.y = 240;
            
            objectSp3 = new Sprite();
            objectSp3.graphics.beginGradientFill(GradientType.LINEAR, [0x0066cc, 0x0099ff], [1, 1], [0,  255], mtx,SpreadMethod.PAD);
            objectSp3.graphics.drawRect(0, 0,W,H);
            objectSp3.graphics.endFill();
            addChild(objectSp3);
            objectSp3.alpha = 0.5;
            objectSp3.blendMode = BlendMode.MULTIPLY;
            objectSp3.x = 0;
            objectSp3.y = 220;
                        
            stage.addEventListener(Event.ENTER_FRAME,onEnterFramer);
        }
    
        public function onEnterFramer(e:Event):void {
        
            perlinNum += 10;
            var disp:DisplacementMapFilter = new DisplacementMapFilter();
            var disp2:DisplacementMapFilter = new DisplacementMapFilter();
            var disp3:DisplacementMapFilter = new DisplacementMapFilter();
            disp = displacementMap(perlinNum, perlinNum,130,180);
            disp2 = displacementMap(perlinNum, perlinNum, 180, 140);
            disp3 = displacementMap(perlinNum, perlinNum,140,110);
            objectSp.filters = [disp];
            objectSp2.filters = [disp2];
            objectSp3.filters = [disp3];
        }
        
        public function displacementMap(px:Number,py:Number,bX:Number,bY:Number):DisplacementMapFilter {
            var dis:DisplacementMapFilter = new DisplacementMapFilter();
            dis.mapBitmap = perlinMap(px, py,bX,bY);
            var po:Point = new Point(0,-200);
            dis.mapPoint = po;
            var colChannel:uint = BitmapDataChannel.RED;
            var colChannel2:uint = BitmapDataChannel.BLUE;
            dis.componentX = colChannel;
            dis.componentY = colChannel2;
            dis.scaleX = 0;
            dis.scaleY = bY;
            var modest:String = new String("color");
            dis.mode = modest;
            return dis;
        }
        
        public function perlinMap(px:Number,py:Number,bX:Number,bY:Number):BitmapData {
            var bmd:BitmapData = new BitmapData(W,H);
            var baseX:Number = bX;
            var baseY:Number = bY;
            var numOctaves:uint = 1;
            var ramdomseed:int = 10;
            var stitch:Boolean = true;
            var factalNoize:Boolean = true;
            var channelOption:uint =BitmapDataChannel.RED|BitmapDataChannel.GREEN |BitmapDataChannel.BLUE ;
            var grayScale:Boolean = false;
            var offsets:Array = [new Point(0,px),new Point(py,0)];
            bmd.perlinNoise(baseX, baseY, numOctaves, ramdomseed, stitch, factalNoize, channelOption, grayScale, offsets);
            return bmd;
        }
    
        
        

    }


}