我在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!