Все, что я хочу сделать, это получить свойства форматирования TLFTextField и применить их к другому TLFTextField. Это было просто с использованием классического TextField:
var textFormat:TextFormat = text1.getTextFormat();
text2.setTextFormat(textFormat);
В TLFTextField есть функции getTextFormat и setTextFormat, но обе они содержат много ошибок. getTextFormat работает только в том случае, если вы измените свойство selectable на true, в противном случае он генерирует ошибку нулевого объекта. setTextFormat генерирует ошибку NaN, когда некоторые свойства объекта TextFormat не равны нулю.
Вместо этого предполагается использовать объект TextLayoutFormat для TLFTextFields. Вы устанавливаете объект, делая следующее:
var text1:TLFTextField = new TLFTextField();
var textLayoutFormat:TextLayoutFormat = new TextLayoutFormat();
var textFlow:TextFlow = text1.textFlow;
textFlow.hostFormat = textLayoutFormat;
textFlow.flowComposer.updateAllControllers();
Однако я не могу понять, как теперь «получить» TextLayoutFormat из text1. Один человек предложил следующее:
textLayoutFormat = ((text1.textFlow.getChildAt(0) as ParagraphElement).getChildAt(0) as SpanElement).computedFormat as TextLayoutFormat;
Но это только что вернуло ноль. Кто-нибудь знает, как получить TextLayoutFormat, чтобы я мог применить его к другому TLFTextField?