Flash - setTextFormat аварийно завершает работу в TLFTextField - PullRequest
0 голосов
/ 07 ноября 2011

У нас есть библиотека с кучей TextFields внутри MovieClips. Во время выполнения мы создаем экземпляр одного из них, запускаем на нем getTextFormat, чтобы получить форматирование, затем создаем в коде несколько текстовых полей и запускаем для них setTextFormat, чтобы дать им одинаковое форматирование.

Я пытаюсь сделать то же самое, но с TLFTextFields. У меня есть следующее:

var text:TLFTextField = new classFromLib();
text.selectable = true; //required for getTextFormat to work, flash bug
textFormat = text.getTextFormat();
text.selectable = false; // set it back to false

Проблема теперь в textFormat.leading: -2147483648, а textFormat.letterSpacing - в NaN. Это приводит к следующим 2 ошибкам во время выполнения соответственно при запуске text.setTextFormat (textFormat):

Property lineHeight value -2147483648 is out of range

Property trackingRight value NaN is out of range

Если я установлю для textFormat.leading и textFormat.letterSpacing значение null до запуска setTextFormat, то все будет работать, но, очевидно, текстовые поля не получают начальный и межбуквенный интервал, как в библиотеке. Это проблема, так как мне нужны эти 2 свойства. Кто-нибудь знает способ обойти это?

1 Ответ

0 голосов
/ 07 ноября 2011

Возможно, вам потребуется получить TextLayerFormat из поля TLTFText:

Вот документация по TextLayerFormat.

Другой вариант - получить свойство содержимого, а использовать ElementFormat, чтобы получить доступ к объекту форматирования , который содержит эти свойства

.
...