Flash AS3 рисует TextField в BitmapData с вращением - PullRequest
2 голосов
/ 21 сентября 2011

Я хочу нарисовать текст в bitmapData и позволить ему вращаться, но поворот текста заставляет его исчезнуть: (

Код, который я использую, напоминает что-то вроде этого:

var tf : TextField = new TextField();
tf.text = "testing";

var mat : Matrix = new Matrix();
mat.identity();
mat.rotate(angle);
var img : BitmapData = new BitmapData(500, 500, true, 0);

img.draw(tf, mat, null, null, null, true);

Если я закомментирую mat.rotate (angle); текст выглядит нормально. Это не значение угла, потому что я могу сделать это:

var tf : TextField = new TextField();
tf.text = "testing";

var mat : Matrix = new Matrix();
mat.identity();
mat.rotate(angle);
var img    : BitmapData = new BitmapData(500, 500, true, 0);
var txtImg : BitmapData = new BitmapData(500, 500, true, 0);

txtImg.draw(tf,      null, null, null, null, true);
img.   draw(txtImg , mat,  null, null, null, true);

и текст будет отображаться повернутым (что является обходным решением этой проблемы, но мне нужно создать 2 изображения BitmapData и дважды вызвать draw, что стоит ЦП и памяти). Я бы предпочел не делать всю эту дополнительную обработку, чтобы получить эффект, который теоретически должен работать с одним вызовом метода draw. Что я делаю не так?

Спасибо

1 Ответ

2 голосов
/ 21 сентября 2011

Вам следует попробовать

tf.embedFonts = true;

Если вы не используете встроенные шрифты, Flash не сможет сделать ничего графически продвинутого с вашим TextField.


Из @ вчерашнего комментария (для лучшего форматирования):

Для других, у которых может быть такая же проблема, я использовал тег Embed для встраивания моего шрифта.Что-то вроде:

[Embed(source='../libs/font.ttf', fontFamily='MyFont', embedAsCFF='false')] 
private const MyFont : Class; 

и я вызываю

Font.registerFont(MyFont); 

где-нибудь в коде перед использованием шрифта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...