Вопрос

Как повернуть текстовое поле в 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);
Это было полезно?

Решение

Еще немного информации в поддержку Кристофа Херремана: ActionScript — поворот текста

Другие советы

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

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

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

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

приветствие

back2dos

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

Сначала я встроил шрифт, используя только 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, поделитесь, пожалуйста!

Это то, что сработало для меня.

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

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

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

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

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

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, я все равно увижу шрифт.

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);
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top