您的位置:首页 > 其它

AS3复制图形镜像

2011-11-04 13:31 351 查看
在做开发的时候遇到了图形镜像的问题,感觉这个不难但是写起来应该是挺麻烦的。不过看了网上的一篇文章以后发现其实解决的方法是很多的。

var container:Sprite = new Sprite();
var brush:Sprite = new Sprite();
//设置镜像中心点的位置set mirror center
brush.x = 600/2;
brush.y = 400/2;
container.addChild ( brush );
addChild ( container );

var canDraw:Boolean = false;
var pen:Graphics = brush.graphics;

//复制镜像部分 copy mirror
var mirrorBmd:BitmapData = new BitmapData(600,400,true,0x00ffffff );
var mirrorImage:Bitmap = new Bitmap( mirrorBmd );
addChild ( mirrorImage );
//镜像的数量
var mirrorNum = 8;
//镜像生成函数
function showMirrorImage () {
var angle = 360 / mirrorNum;
mirrorBmd.draw ( container );
for (var i:int = 1; i < mirrorNum; i++) {
brush.rotation = angle * i;
mirrorBmd.draw ( container );
}
brush.rotation = 0;
}

stage.addEventListener ( MouseEvent.MOUSE_DOWN, beginPaint );
stage.addEventListener ( MouseEvent.MOUSE_MOVE, onPaint );
stage.addEventListener ( MouseEvent.MOUSE_UP, endPaint );
function beginPaint (_evt:MouseEvent ) {
canDraw = true;
pen.lineStyle (1, 0x006699, 0.75, true, "normal", CapsStyle.ROUND, JointStyle.ROUND, 0.5);
pen.moveTo (brush.mouseX, brush.mouseY);
}
function onPaint ( evt:MouseEvent ) {
if ( canDraw ) {
pen.lineTo ( brush.mouseX, brush.mouseY );
showMirrorImage ();
}
}
function endPaint ( evt:MouseEvent ) {
if ( canDraw ) {
pen.lineTo ( brush.mouseX, brush.mouseY );
pen.clear ();
canDraw = false;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: