/**
* Copyright mutantleg ( http://wonderfl.net/user/mutantleg )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/1mP5
*/
package {
import flash.geom.ColorTransform;
import flash.geom.Rectangle;
import flash.display.BitmapData;
import flash.events.Event;
import flash.display.Sprite;
public class FlashTest extends Sprite {
public function FlashTest() {
skin = new BitmapData(64,64, false, 0);
var i:int; var r:Rectangle; var c:uint;
r = new Rectangle();
r.width=1; r.height=64;
for (i=0;i<64;i+=1)
{
r.x=i;
c = 255- (i * 4);
c = (c<<16)|(c<<8)|c;
skin.fillRect(r, c);
}//nexti
var ct:ColorTransform;
ct = new ColorTransform(1,1,1);
r.x=0;r.width=64; r.height=1;
for (i=0;i<64;i+=1)
{
r.y=i;
ct.redOffset = i*-4;
ct.greenOffset = i*-4;
skin.colorTransform(r, ct);
}//nexti
//drawTri(skin, 0,0, 320, 15, 50, 280);
graphics.beginBitmapFill(skin);
graphics.drawRect(0,0,64,64);
graphics.endFill();
stage.addEventListener(Event.ENTER_FRAME, onEnter);
}//ctor
public var skin:BitmapData;
public function onEnter(e:Event):void
{
graphics.clear();
//graphics.lineStyle(2, 0);
cx = stage.mouseX; cy =stage.mouseY;
var i:int; var k:int;
var cw:Number; var ch:Number;
cw=32*2;ch=32*2;
for (i=0; i<8;i+=1)
for (k=0;k<8;k+=1)
{
drawTri(skin, k*cw,i*ch, k*cw+cw, i*ch, k*cw, i*ch+ch);
drawTri(skin, k*cw+cw, i*ch, k*cw, i*ch+ch, k*cw+cw,i*ch+ch, 0.1 );
}//nexti
graphics.beginBitmapFill(skin);
graphics.drawRect(0,0,64,64);
graphics.endFill();
}//onenter
public var cx:Number = 230; public var cy:Number = 230;
public var gx:Number = 130;
public var gy:Number = 300;
public function getMag(ax:Number, ay:Number):Number
{ return Math.sqrt(ax*ax + ay*ay); }
public var vecVert:Vector.<Number> = new Vector.<Number>(6, false);
public var vecUv:Vector.<Number> = new Vector.<Number>(6, false);
public var vecFace:Vector.<int> = Vector.<int>([0,1,2]);
public function drawTri(m:BitmapData, x0:Number,y0:Number,x1:Number,y1:Number,x2:Number,y2:Number, v:Number=0):void
{
vecVert[0] = x0; vecVert[1] = y0;
vecVert[2] = x1; vecVert[3] = y1;
vecVert[4] = x2; vecVert[5] = y2;
var m0:Number;
var m1:Number;
var m2:Number;
m0 = getMag(cx-x0, cy-y0);
m1 = getMag(cx-x1, cy-y1);
m2 = getMag(cx-x2, cy-y2);
vecUv[0] = m0/265; vecUv[1] = v;
vecUv[2] = m1/265; vecUv[3] = v;
vecUv[4] = m2/265; vecUv[5] = v;
if (vecUv[0]>1) {vecUv[0] =1;}
if (vecUv[2]>1) {vecUv[2] =1;}
if (vecUv[4]>1) {vecUv[4] =1;}
/*
m0 = getMag(gx-x0, gy-y0);
m1 = getMag(gx-x1, gy-y1);
m2 = getMag(gx-x2, gy-y2);
vecUv[1] = m0/465;
vecUv[3] = m0/465;
vecUv[5] = m0/465;
if (vecUv[1]>1) {vecUv[1] =1;}
if (vecUv[3]>1) {vecUv[3] =1;}
if (vecUv[5]>1) {vecUv[5] =1;}
*/
graphics.beginBitmapFill(m, null,false,false);
graphics.drawTriangles(vecVert,vecFace,vecUv);
graphics.endFill();
}//drawtri
}//classend
}