我在AS3 Flash中有一个位图,我正在使用base64编码的jpg字符串将其发送到javascript。

一切都很好。我需要按比例缩小img并旋转180度。缩放有效,但旋转无效。旋转永远不会发生。我知道我显然做错了,但不知道正确的方法。

因此,基本上我只需要将图像旋转180度,这样当将其发送到javascript时,它就颠倒了。

这是我的转换代码

var scaleFactor:int = 5;

var tempBitmap:BitmapData = new BitmapData(img.width/scaleFactor, img.height/scaleFactor);
var drawMatrix:Matrix = new Matrix(1/scaleFactor, 0, 0, 1 /scaleFactor );
drawMatrix.rotate(Math.PI); //180deg

tempBitmap.draw(img, drawMatrix);

最佳答案

我认为您需要在旋转后平移对象,否则它将被裁剪,因此您看不到它,我在舞台上使用CS5在MovieClip中使用位图进行了示例。

import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.MovieClip;

var scaleFactor:int = 1;

var tempBitmap:BitmapData = new BitmapData(img.width, img.height);

var rotationMatrix:Matrix = new Matrix();
rotationMatrix.rotate(Math.PI);
rotationMatrix.translate(img.width, img.height);

tempBitmap.draw(box_mc, rotationMatrix);
var output:Bitmap = new Bitmap(tempBitmap);

addChild(output);


我并没有搞定缩放比例,我想您可以自己做。我放在舞台上的那个在右边,绘制的bitmapData一个在舞台的左上方,并且正确地反转了。

更新

还可以按照下面的32bitkid注释查看fl.motion.MatrixTransformer

07-28 01:11
查看更多