TextFormat и TextFields отображают разные за пределами FlashPlayer - PullRequest
0 голосов
/ 15 февраля 2012

Я использовал TextFields, как это, чтобы визуализировать текст для игры.Я занимался разработкой во FlashDevelop, поэтому SWF-файл компилируется с помощью компилятора Flex.

Моя проблема заключается в том, что этот текст не отображается с соответствующим форматированием при просмотре его в браузере, а не во флэш-плеере (который выглядит хорошо).Разные разрешения экрана, как правило, различаются тем, как они искажают текст в браузере.Почему это может быть?

  var welcomeText:TextField = new TextField();
//formatText creates a TextFormat object, sets those values into TextFormat
//then returns after doing TextField.defaultTextFormat = TextFormatObj;

            formatText(welcomeText, 3, 0xFFFFFF, "Courier");
            welcomeText.width = 385;
            welcomeText.height = 25;
            welcomeText.x = 60;
            welcomeText.y = 60;
            welcomeText.text = "Cogito ergo sum";

Ответы [ 2 ]

0 голосов
/ 15 февраля 2012

Скорее всего, это происходит потому, что вы не встраиваете шрифт.Вместо этого вы используете шрифт Courier, доступный для их системы (или браузера).Хотя это экономит размер файла (шрифт не упакован в SWF-файл), он не всегда выглядит так здорово.

Чтобы использовать встроенный шрифт, необходимо выполнить 2 действия

1.Установите для «embedFonts» значение true для вашего TextField

welcomeText.embedFonts = true;

2.Внедрить шрифт

Вы можете использовать метаданные в AS3 для встраивания файла шрифта следующим образом:

[Embed(source="C:\WINDOWS\Fonts\COURIER.TTF", fontFamily="Courier")]
var _courier:String;
myTextFormat.font = _courier;

Примечание. Вы также можете создать связь шрифтов в библиотекеFlash Professional.В библиотеке выберите «Новый шрифт ...», назовите его.Когда закончите, щелкните правой кнопкой мыши шрифт и выберите «Linkage ...», дайте ему имя класса (скажем, «Courier_Font») и экспортируйте как SWC.Добавьте это к своему пути к классам в вашей IDE, и шрифт будет доступен следующим образом:

var _font:Courier_Font = new Courier_Font();
myTextFormat.font = _font.fontName;
0 голосов
/ 15 февраля 2012

Попробуйте взглянуть на это . Я знаю, что в прошлом у меня были проблемы с форматированием, поэтому я устанавливаю объект TextFormat так же, как и вы, плюс я использую

testfield.SetStyle()

команда. Вы можете установить множество параметров через SetStyle (семейство шрифтов, цвет, даже текстовый формат), как в этом примере ...

TextFormat textStyle;
// Set properties for textstyle
textField.setStyle("textFormat", textStyle);

Надеюсь, это поможет. Я просто пытаюсь настроить его как можно больше.

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