0

我已经创建了一个应用程序,我正在截图

var bitmapData:BitmapData = new BitmapData(blah, blah) bitmapData.draw(blah, matrix);

当我在我的电脑上运行它时它工作正常,但是当我将它导出并放在我的 iPhone 上时,bitmapData 完全错误,奇怪的是位置不正确,并且通过我的所有测试,有时大小不同。

我正在尝试做的事情非常简单易行,我只是不明白为什么它不能在 iPhone 上运行。帮助!

4

1 回答 1

0

你如何创建你的矩阵?

试试这个:我前段时间找到了它......并且改进了一点......

    /** create a bitmap from a displayObject */
    public static function toBitmap(value:DisplayObject, inverse:Boolean = true):Bitmap
    {
        // help: http://darylteo.com/blog/2006/12/17/bitmapdatadraw/

        var defaultMartix:Matrix = value.transform.matrix;

        //Find occupied region
        var region:Rectangle = new Rectangle();
        region = value.getBounds(value);

        //Build Matrix Transform
        var matrix:Matrix = new Matrix(1, 0, 0, 1, -region.x, -region.y);

        value.transform.matrix = matrix;

        var bmpData:BitmapData = new BitmapData(value.width, value.height, true, undefined);
        bmpData.draw(value, matrix, null, null, null, true);

        var bmp:Bitmap = new Bitmap(bmpData, "auto", true);

        if (inverse)
        {
            //Re apply an Inverse Matrix
            matrix = new Matrix(1, 0, 0, 1, region.x, region.y);
            bmp.transform.matrix = matrix;
        }

        value.transform.matrix = defaultMartix;

        return bmp;
    }
于 2012-06-20T09:27:36.323 回答