flash on 2013-12-20
♥0 |
Line 69 |
Modified 2013-12-20 23:12:01 |
MIT License
archived:2017-03-20 10:43:24
ActionScript3 source code
/**
* Copyright joanllenas ( http://wonderfl.net/user/joanllenas )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/5Wgf
*/
package {
import flash.geom.Rectangle;
import flash.geom.Matrix;
import flash.display.Sprite;
public class FlashTest extends Sprite
{
public function FlashTest()
{
var sp:Sprite = new Sprite();
//sp.graphics.lineStyle(1);
sp.graphics.beginFill(0);
sp.graphics.drawRect(0,0,150,50);
sp.graphics.endFill();
var m:Matrix = sp.transform.matrix;
m.scale(1.8,1.3);
m.rotate( 37 * (Math.PI/180) );
m.translate(200,100);
sp.transform.matrix = m;
addChild(sp);
masking(sp);
}
private function masking(msk:Sprite):void
{
var mskb:Rectangle = msk.getBounds(this);
var img:Sprite = new Sprite();
img.graphics.lineStyle( 1, 0xFF0000 );
img.graphics.drawRect( 0, 0, 150, 50 );
var offsetX:int = 0;
var offsetY:int = 0;
var tx:int = msk.transform.matrix.tx;
var ty:int = msk.transform.matrix.ty;
var maskMatrix:Matrix = new Matrix(
img.transform.matrix.a, img.transform.matrix.b,
img.transform.matrix.c, img.transform.matrix.d,
0, 0
);
maskMatrix.scale( 1.8,1.3 );
maskMatrix.rotate( 37 * (Math.PI/180) );
img.transform.matrix = maskMatrix;
bb(img, 0x0000FF);
var mskw:Number = mskb.width;
var mskh:Number = mskb.height;
offsetY = (img.height - mskh) / 2;
offsetX = (img.width - mskw) / 2;
maskMatrix.translate(tx - offsetX, ty - offsetY);
img.transform.matrix = maskMatrix;
bb(img, 0x0000FF);
addChild(img);
}
private function bb(s:Sprite, c:uint):void
{
var b:Sprite = new Sprite();
b.graphics.lineStyle( 1, c );
b.graphics.drawRect(
s.getBounds(this).x, s.getBounds(this).y,
s.getBounds(this).width, s.getBounds(this).height
);
b.graphics.moveTo( s.getBounds(this).x + s.getBounds(this).width/2,
s.getBounds(this).y );
b.graphics.lineTo( s.getBounds(this).x + s.getBounds(this).width/2,
s.getBounds(this).y + s.getBounds(this).height );
b.graphics.moveTo( s.getBounds(this).x, s.getBounds(this).y + s.getBounds(this).height/2);
b.graphics.lineTo(
s.getBounds(this).x + s.getBounds(this).width,
s.getBounds(this).y + s.getBounds(this).height/2
);
addChild( b );
}
}
}