flash on 2011-1-14

by yama3
♥0 | Line 92 | Modified 2011-01-14 20:24:47 | MIT License
play

ActionScript3 source code

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

package {
    import flash.system.LoaderContext;
    import flash.display.Bitmap;
    import flash.display.BitmapData;
    import flash.display.BitmapDataChannel;
    import flash.display.Loader;
    import flash.display.Shape;
    import flash.display.Sprite;
    import flash.filters.DisplacementMapFilter;
    import flash.filters.GlowFilter;
    import flash.geom.Point;
    import flash.geom.Rectangle;
    import flash.events.Event;
    import flash.display.StageQuality;
    import flash.net.URLRequest;
    import flash.net.*;
    
    [SWF(backgroundColor = 0x000000)]
    public class FlashTest extends Sprite {
        private const CANVAS_WIDTH:int = stage.stageWidth;
        private const CANVAS_HIGHT:int = stage.stageHeight;
        private const CANVAS_COLOR:uint = 0x000000;
        private var obj_bmd:BitmapData;
        private var obj_bm:Bitmap;
        private var canvas_bmd:BitmapData;
        private var canvas:Bitmap;
        private var c:Shape;
        private var map:BitmapData = new BitmapData(CANVAS_WIDTH,CANVAS_HEIGHT);
        
        private var ld:Loader;
        public function FlashTest() {
            if(stage) init();
            else addEventListener(Event.ADDED_TO_STAGE, init);            
        }
        
        private function init(e:Event = null):void
        {
            removeEventListener(Event.ADDED_TO_STAGE, init);
            stage.quality = StageQuality.LOW;
            loadObject();
        }
        
        private function loadObject():void
        {
            ld = new Loader();
            ld.load(
            new URLRequest("http://wonderfl.net/static/tmp/related_images/5f5798c2740d05774babc5eaecc10f7d19e3cb18m"),
            new URLRequest("http://assets.wonderfl.net/images/related_images/5/5f/5f57/5f5798c2740d05774babc5eaecc10f7d19e3cb18"),
            new LoaderContext(true)
            );
            ld.contentLoaderInfo.addEventListener(Event.COMPLETE, drawObject);
        }
        
        private function drawObject(e:Event=null):void
        {
            canvas_bmd = new BitmapData(466, 466);
            canvas_bmd.draw(ld);
            canvas = new Bitmap(canvas_bmd);
            addChild(canvas);
            addEventListener(Event.ENTER_FRAME, loop);
        }
        
        private var v:Number = 0;
        private function loop(e:Event = null):void
        {
            removeChild(canvas);
            canvas_bmd = new BitmapData(ld.width, ld.height);
            canvas_bmd.lock();
            canvas_bmd.draw(ld);
            canvas = new Bitmap(canvas_bmd);
            addChild(canvas);
            map.perlinNoise
            (
                map.width,
                map.height,
                1,
                6,
                false,
                true,
                BitmapDataChannel.RED | BitmapDataChannel.GREEN,
                false,
                [new Point(v,v), new Point(v,v)]
            );
            
            var displace:DisplacementMapFilter = new DisplacementMapFilter
            (
                map,
                new Point(0,0),
                1,
                1,
                (CANVAS_WIDTH/2 - mouseX)*2,
                (CANVAS_HEIGHT/2 - mouseY)*2
            );
            v += 12;
            canvas_bmd.applyFilter(canvas_bmd, canvas_bmd.rect, new Point(0,0),displace);
            canvas_bmd.unlock();
        }
    }
}