Динамически перевернуть свойство wordwrap в текстовое поле TLF - PullRequest
2 голосов
/ 17 марта 2011

Я использую Flash CS5 и ActionScript 3.

Мне нужно динамически (в ответ на событие) перевернуть свойство wordWrap объекта TLFTextField с true на false и наоборот.У меня он работал со старым классом TextField, но я не могу заставить его работать с TLF.

Я объявляю свое поле и настраиваю его так, со значением wordWrap true:

this.field = new TLFTextField;
field.multiline = true;
field.wordWrap = true;
field.autoSize = TextFieldAutoSize.LEFT;

field.tlfMarkup = my_content;

this.addChild(field);
var myTextFlow:TextFlow = field.textFlow;
myTextFlow.hostFormat = format; //format is a TextLayoutFormat declared earlier
myTextFlow.flowComposer.updateAllControllers();

Чтобы изменить перенос слов, я попробовал следующее:

field.wordWrap = false;
field.multiline = false;
var myTextFlow:TextFlow = field.textFlow;
myTextFlow.flowComposer.updateAllControllers();

Но это не имеет никакого эффекта - текст остается перенесенным.Кто-нибудь может сказать мне, что мне не хватает?

Заранее спасибо,

Аманда

Ответы [ 2 ]

2 голосов
/ 12 августа 2011

, чтобы изменить перенос слов на false, должен быть установлен текст. (мне понадобилось около получаса, чтобы все заработало!)

field.wordWrap = false;
trace(field.wordWrap); // will echo true

следующее должно работать:

if(field.text == ""){

  field.text = "a";
  field.wordWrap = false;
  field.text = "";

} else {

  field.wordWrap = false;

}

trace(field.wordWrap); // should echo false
0 голосов
/ 18 марта 2011

Прежде всего, вы пробовали: this.field = new TLFTextField();

У вас не было круглых скобок.

По крайней мере, стоит посмотреть. (Также я считаю, что это бета-версия, так что есть вероятность ошибки?)

Наконец, вы можете рассмотреть возможность тестирования без AutoSize ... иногда вызывает проблемы.

Извините, что не могу быть немного более полезным с точным решением.

...