Maltineジャケをディゾルブするサンプル / Foundation ActionScript 3.0 Image Effects 5

by mirrorboy
♥0 | Line 66 | Modified 2012-02-10 21:44:25 | MIT License | (replaced)
play

Related images

ActionScript3 source code

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

package
{
    import flash.system.LoaderContext;
    import flash.display.BitmapData;
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.events.MouseEvent;
    import flash.filters.BlurFilter;
    import flash.filters.ColorMatrixFilter;
    import flash.geom.Point;
    import flash.geom.Rectangle;

    import flash.display.Bitmap;
    import flash.display.Loader;
    import flash.display.LoaderInfo;
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.net.URLRequest;
    
    
    public class PixelDissolveTest extends Sprite
    {
        private var bitmapData:BitmapData;
        private var filterWidth:Number  = 100;
        private var point:Point = new Point(0,0);
        
        protected var _loadedBitmap:Bitmap;

      
        public function PixelDissolveTest()
        {
            loadImage("http://assets.wonderfl.net/images/related_images/4/48/4825/4825be74cce1c3cf7f9c34fef5f2ae21be742bac");
        }
        
        protected function runPostImageLoad():void{
            bitmapData = _loadedBitmap.bitmapData;
        
            addChild(_loadedBitmap);
            stage.addEventListener(Event.ENTER_FRAME,onEnterFrame);
            _loadedBitmap.filters[getSaturationFilter()];
        }
        
        /*
        private function onMouseMove(event:MouseEvent):void{
            
            
                        
        }*/
        
        private function onEnterFrame(event:Event):void
        {
            point.x -= (point.x - mouseX)/8;
            point.y -= (point.y - mouseY)/8;
                        
            var numPixels:uint = (bitmapData.width * bitmapData.height)/300;
            bitmapData.pixelDissolve(bitmapData,new Rectangle(point.x - filterWidth/2,0,filterWidth,bitmapData.width),new Point(),1000*Math.random(),numPixels,bitmapData.getPixel32(mouseX,mouseY));            
        }
        
        private function getSaturationFilter():ColorMatrixFilter{
            var r:Number = 0.3;
            var g:Number = 0.59;
            var b:Number = 0.11;
            
            var amount:Number = 2.2;
            var inverse:Number = 1 - amount;
            var matrix:Array= [ 
                
                inverse*r + amount , inverse * g , inverse * b , 0,0,
                inverse*r,             inverse * g + amount , inverse * b,0,0,
                inverse*r,             inverse * g , inverse*b + amount,0,0,
                0,                     0,               0,                  1,0
            ];
            
            return new ColorMatrixFilter(matrix);
        }
        
        private function loadImage(imagePath:String):void{
            var loader:Loader = new Loader();
            loader.contentLoaderInfo.addEventListener(Event.COMPLETE,onImageLoaded);
            loader.load(new URLRequest(imagePath),new LoaderContext(true));
        }
        
        private function onImageLoaded(event:Event):void{
            var loaderInfo:LoaderInfo = event.target as LoaderInfo;
            _loadedBitmap = loaderInfo.content as Bitmap;
            runPostImageLoad();
        }
        
    }
    
}