flash on 2011-2-16

by Thy
♥0 | Line 58 | Modified 2011-02-16 02:41:29 | MIT License
play

ActionScript3 source code

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

package {
    import flash.display.GradientType;
    import flash.geom.Matrix;
    import flash.display.Graphics;
    import flash.display.BitmapData;
    import flash.display.Bitmap;
    import flash.display.Sprite;
    public class FlashTest extends Sprite
    {
        private var 
        cores:Array = [0xECECEC, 0xDCE1E5],//[0xF0F5F8,  0xE8EDF8],
        bitmap:Bitmap, data:BitmapData,
        w:Number = 100, h:Number = 100;
        
        public function FlashTest() 
        {
            data = new BitmapData(w*3, h, false, 0x00FF00);
            bitmap = new Bitmap(data, "auto", true);
            this.addChild(bitmap);
            
            var q:Sprite = new Sprite();                                                                          
            var g:Graphics = q.graphics;
            var m:Matrix = new Matrix();
            m.createGradientBox(w,h, Math.PI/2);
            g.beginGradientFill(GradientType.LINEAR, cores, [1,1],
                [0, 255], m);
            g.drawRect(0,0,100,100);
            data.draw(q);
            g.clear();
            //
            m = new Matrix();
            m.createGradientBox(w,h, 3*Math.PI/2, 200);
            g.beginGradientFill(GradientType.LINEAR, cores, [1,1],
                [0, 255], m);
            g.drawRect(200,0,100,100);
            data.draw(q);
            g.clear();
            //
            var i:int = -1, j:int = -1;
            var R:Number, G:Number, B:Number;
            var c0:uint, c1:uint, c2:uint;
            while(++i < h)
            {
                c0 = data.getPixel(w-1, i);
                c1 = data.getPixel(2*w, i);
                R = ((c1 & 0xFF0000) >> 16) - ((c0 & 0xFF0000) >> 16);
                G = ((c1 & 0x00FF00) >> 8) - ((c0 & 0x00FF00) >> 8);
                B = (c1 & 0x0000FF) - (c0 & 0x0000FF);
                R /= w; G /= w; B /= w;
                j = -1;
                while(++j < w)
                {
                    /*
                    c2 += (R << 16);
                    c2 += (G << 8);
                    c2 += B;
                    */
                    
                    
                    c2 = c0;
                    c2 += ((R*j) & 0xFF) << 16
                    c2 += ((G*j) & 0xFF) << 8
                    c2 += ((B*j) & 0xFF)
                    
                    
                    data.setPixel(w+j, i, c2);
                }
            }
        }
    }
}