Actionscript: как повернуть текстовое поле? - PullRequest
6 голосов
/ 13 июля 2009

Как вы вращаете текстовое поле в actionscript 3.0? Как только я изменяю свойство поворота текстового поля, оно не отображается.

например:

var txtFld:TextField = new TextField();
txtFld.x = 100;
txtFld.y = 100;
txtFld.width = 300;
txtFld.height = 300;
txtFld.text = "Test String";
txtFld.rotation = 90;
addChild(txtFld);

Ответы [ 6 ]

8 голосов
/ 13 июля 2009

Чтобы увидеть повернутый текст, вам необходимо вставить шрифт.

5 голосов
/ 13 июля 2009

альтернатива состоит в том, чтобы скопировать текстовое поле в BitmapData, используя BitmapData::draw, а затем создать Bitmap, содержащий результат, и добавить его в список отображения вместо исходного TextField ...

это имеет большое преимущество: вам не нужно встраивать шрифт, что уменьшает размер SWF-файла ... OTOH, вы потеряете всю интерактивность TextField`а, а SWF понадобится больше оперативной памяти при воспроизведении , но последнее не слишком значимо ...

, чтобы текст выглядел гладко, установите Bitmap::smoothing на true ... также, это помогает, если вы рендерите свое изображение с более высоким разрешением ... псевдо-сглаживание, так сказать ... при рисовании текста передайте Matrix, увеличенное в 2 раза, и уменьшите Bitmap в 2 раза ... таким образом, он будет выглядеть лучше ...

Greetz

back2dos

4 голосов
/ 13 июля 2009

Дополнительная информация в поддержку Кристофа Херремана: ActionScript - вращающийся текст

1 голос
/ 30 декабря 2011

Вот что у меня сработало.

В CS5 мне нужно было изменить настройку в диалоговом окне «Внедрение шрифтов», чтобы она работала.

Чтобы открыть диалоговое окно «Внедрение шрифтов», нажмите кнопку «Внедрить» на панели символов или дважды щелкните символ «Шрифт» в библиотеке.

Затем выберите шрифт, который вы хотите повернуть, и перейдите на вкладку Actionscript.

Наконец, установите флажок Экспорт для Actionscript. Оставьте значения по умолчанию и нажмите OK.

Ниже приведен код, который я использовал:

textField = new TextField();
textField.autoSize = TextFieldAutoSize.LEFT;
textField.embedFonts = true;

format.font = "Arial"; // Or whatever the name of your font is in the embed dialog
format.size = 24;
textField.defaultTextFormat = format;

addChild(textField);

Если затем применить поворот к этому полю через AS, я все еще вижу шрифт.

1 голос
/ 25 ноября 2011

Я просто хотел добавить свой опыт к этому вопросу. Я тоже хотел повернуть текст.

Сначала я встроил шрифт, используя только ActionScript.

Embed(source="C:\\WINDOWS\\Fonts\\CALIBRI.TTF", fontFamily="Calibri")]
public static const FONT_CALIBRI:Class;
...
var font:Font = new Global.FONT_CALIBRI as Font;
//Font.registerFont(Global.FONT_CALIBRI); //I tried various other things...

Но каждый раз, когда я устанавливаю embedFonts = true, текст исчезает. Наконец я сдался и встроил шрифт, используя Flash .

var font:Font = new FontClass as Font; //FontClass was exported from Flash IDE

Наконец-то это сработало.

var textFormat:TextFormat = new TextFormat(font.fontName);

textField = new TextField();
textField.defaultTextFormat = textFormat; //must be before setting the text
textField.embedFonts = true; //needed to rotate fonts
textField.autoSize = TextFieldAutoSize.CENTER;
textField.antiAliasType = flash.text.AntiAliasType.ADVANCED;
textField.text = ("TESTING")
this.addChild(textField);

О, как я ненавижу использовать Flash IDE для чего-либо. Если кто-то смог сделать это без использования Flash, пожалуйста, поделитесь!

0 голосов
/ 15 апреля 2010
var txtFld:TextField = new TextField();
txtFld.x = 100;
txtFld.y = 100;
txtFld.width = 300;
txtFld.height = 300;
txtFld.text = "Test String";

txtFld.embedFonts = true; // to embed the font ... now roation works

txtFld.rotation = 90;
addChild(txtFld);
...