水平翻转位图

时间:2011-10-14 20:58:39

标签: actionscript-3 actionscript bitmap

我需要水平翻转Bitmap。我尝试将其scaleX属性设置为-1.0,并修改了Bitmap,使得我只能在左侧看到它的一小部分(翻转),而不是整个翻转Bitmap。其x属性仍为0。我使用转换矩阵尝试了同样的事情,结果相同。

我做错了什么?

1 个答案:

答案 0 :(得分:12)

我发布了一个简单的函数来翻转bitmapdata对象。 http://plasticsturgeon.com/2010/09/flipping-a-bitmapdata-image/

以下是相关代码。

function flipBitmapData(original:BitmapData, axis:String = "x"):BitmapData
{
     var flipped:BitmapData = new BitmapData(original.width, original.height, true, 0);
     var matrix:Matrix
     if(axis == "x"){
          matrix = new Matrix( -1, 0, 0, 1, original.width, 0);
     } else {
          matrix = new Matrix( 1, 0, 0, -1, 0, original.height);
     }
     flipped.draw(original, matrix, null, null, null, true);
     return flipped;
}

如果要在位图中翻转图像,可以像这样翻转其bitmapdata属性:

myBitmap.bitmapData = flipBitmapData(myBitmap.bitmapData, "x");

您可以使用“y”切换到垂直翻转。