У кого-нибудь есть пример использования функции ImageSnapshot.captureBitmapData с матрицей вращения? Это код, который я использую:
var matrix:Matrix = new Matrix();
matrix.rotate(degreesToRadians(90));
var bitmapData:BitmapData = ImageSnapshot.captureBitmapData(textInput, matrix);
Но, к сожалению, это приводит к ошибке в следующей строке в ImageSnapshot.as:
data = new BitmapData(scaledWidth, scaledHeight, true, 0x00000000); // <-- THROWS ERROR HERE AS scaledWidth / scaledHeight are extremely small numbers (-1-e16 etc)
data.draw(source, matrix, colorTransform,
blendMode, clipRect, smoothing);
}
finally
{
if (source is IUIComponent)
finishPrintObject(IUIComponent(source), normalState); // <-- ERROR THROWN HERE, BUT CAUSE OF ERROR IS ABOVE
}
То, чего я пытаюсь добиться - это повернутое растровое изображение элемента управления вводом текста (я пытаюсь избежать встраивания шрифта в приложение). Этот код прекрасно работает, когда я не поворачиваю растровое изображение, но в ту минуту, когда я поворачиваю его, он ломается.
Пост-принятый-ответ Редактировать
Я работал с классом загрузчика в своей исходной задаче, и я также хотел, чтобы текст был на 270 градусов - так вот текст, который делает это:
var matrix:Matrix = new Matrix();
matrix.rotate(Math.PI * 1.5);
matrix.translate(0, copyThis.width);
var bitmapData:BitmapData = ImageSnapshot.captureBitmapData(copyThis, new Matrix());
var rotatedBitmap : BitmapData = new BitmapData(bitmapData.height, bitmapData.width, false, 0xFFFF0000);
rotatedBitmap.draw(bitmapData, matrix);
loader.load(new Bitmap(rotatedBitmap));
Спасибо!