Ada*_*yer 4 flash bitmap matrix actionscript-3 bitmapdata
我在AS3闪存中有一个位图,我使用base64编码的jpg字符串将其发送到javascript.
一切都很好.我需要将img发送到缩小版,然后旋转180度.缩放工作,但不是旋转.轮换永远不会.我知道我显然做错了,但不知道正确的方法.
所以基本上我只需要旋转图像180deg,所以当它被发送到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);
Run Code Online (Sandbox Code Playgroud)
我认为你需要在旋转后翻译你的对象,否则它会被剪裁,所以你看不到它,我在舞台上使用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);
Run Code Online (Sandbox Code Playgroud)
我没有弄乱缩放,我猜你自己可以做到这一点.我放在舞台上的那个在右边,绘制的bitmapData是舞台的左上角,并正确反转.
UPDATE
还可以看看fl.motion.MatrixTransformer,根据下面的32bitkid评论!