/**
* Copyright mutantleg ( http://wonderfl.net/user/mutantleg )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/7LW3P
*/
package {
import flash.geom.ColorTransform;
import flash.geom.Matrix;
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,true,0);
graphics.beginFill(0x808080,1);
graphics.drawCircle(32,32, 32);
graphics.endFill();
graphics.beginFill(0x80,0.5);
graphics.drawCircle(50,32, 8);
graphics.endFill();
skin.draw(this);
stage.addEventListener(Event.ENTER_FRAME, onEnter);
}//ctor
public var canvas:BitmapData = new BitmapData(465, 465, false, 0);
public var skin:BitmapData;
public var gt:int = 0;
public var ang:Number = 0;
public var cx:Number = 130;
public var cy:Number = 130;
public var vx:Number = 0;
public var vy:Number = 0;
public function onEnter(e:Event):void
{
var mx:Number; var my:Number;
mx = stage.mouseX; my = stage.mouseY;
gt += 1;
//ang += 0.02;
var sx:Number;
var sy:Number;
var u:Number;
u = Math.sin(gt*0.1)*0.5;
sx = u + 1;
sy = 1-u;
if (u < 0)
{ ang = Math.atan2(my-cy,mx-cx); }
var ms:Number;
ms = 1;
if (u > 0) { ms *= 1;}
else { ms *= 0.25; }
{ vx += Math.cos(ang)*ms; vy+=Math.sin(ang)*ms; }
vx *= 0.8;
vy *= 0.8;
cx+=vx; cy+=vy;
canvas.fillRect(canvas.rect, 0);
drawSprite2(canvas, skin, cx, cy, ang,false,false, sx, sy);
canvas.unlock();
canvas.lock();
graphics.clear();
graphics.lineStyle(2, 0);
graphics.beginBitmapFill(canvas, null,false,false);
graphics.drawRect(0,0,465,465);
graphics.endFill();
}//onenter
public var mirMat:Matrix = new Matrix(1, 0, 0, 1, 0, 0);
public function drawSprite2(to:BitmapData, spr:BitmapData, ax:Number, ay:Number,
ang:Number=0, xmir:Boolean=false,ymir:Boolean=false, scalex:Number=1.0, scaley:Number=1.0, blend:String = null, trans:ColorTransform=null):void
{
var aw:Number; var ah:Number; var rad:Number;
rad = spr.width > spr.height ? spr.width : spr.height;
if (to.width < ax - rad) { return; } if (to.height < ay - rad) { return; }
if (0 > ax + rad) { return; } if (0 > ay + rad) { return; }
aw = spr.width * 0.5; ah = spr.height * 0.5;
mirMat.identity();
mirMat.tx = -aw; mirMat.ty = -ah;
mirMat.scale(xmir? -scalex:scalex, ymir? -scaley:scaley );
mirMat.rotate(ang);
mirMat.translate( ax, ay );
to.draw(spr, mirMat, trans, blend, null, false);
}//drawsprite2
}//classend
}