flash on 2011-2-16
♥0 |
Line 58 |
Modified 2011-02-16 02:41:29 |
MIT License
archived:2017-03-20 02:01:57
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);
}
}
}
}
}