Flex Matrix旋转图像n度

时间:2010-01-24 02:52:18

标签: flex actionscript-3 matrix rotation

如何旋转图像,例如。使用矩阵顺时针180度

我可以使用以下代码将图像旋转90度,但它是增量的,用法

var matrix:Matrix = new Matrix();

matrix.rotate(Math.PI/2);
matrix.tx = imgControl.content.height;

var bitmapData:BitmapData = new BitmapData(imgControl.content.height, imgControl.content.width);
bitmapData.draw(imgControl.content, matrix);
imgControl.source = new Bitmap( bitmapData);

每次运行代码时,图像都会旋转+90度。

我想要的是每次不增加90,但明确说旋转180,旋转90等等。

我不熟悉Matrix,但我猜它确实是真正的bitmapdata操作,而不仅仅是例如。旋转图像组件框(如果我错了就逮捕我)。

如果是这样,我想每次执行旋转命令时都必须重置图像。

我错过了什么吗?

提前感谢任何建议和提示

1 个答案:

答案 0 :(得分:1)

矩阵没有真正的bitmapdata操作。

bitmap.draw调用将imgcontrol.content的旋转图像绘制到位图中,然后您的代码用旋转的图像覆盖imgcontrol.content。

因此,当您的代码当前处于静止状态时,您需要在每次旋转之前从头开始刷新图像,或者您必须跟踪变量中的旋转并计算您需要旋转多少次达到理想的轮换。

如果您需要在一个步骤中进行多次90度旋转,请替换

matrix.rotate(Math.PI/2);

matrix.rotate(Math.PI/2 * howmanytimesyouwanttorotateby90degrees);