Просмотр полной версии : TextFormat и компонент TextArea
Можно ли применить форматирование текста к компоненту TextArea с помощью класса TextFormat или есть альтернатива? У меня не вышло.
В хелпе есть TextArea.styleSheet, но это не совсем подходит (как мне показалось). То есть целью является форматирование текста с возможностью указания начального и конечного индексов. В случае со свойством styleSheet это делается вручную с помощью создания и подстановки тегов, что является не очень удобным для меня решением.
можно расширить компонент TextArea, и добавить нужные свойства и методы.
Не подскажите, каким способом это можно осуществить? Точнее в каком направлении копать? UIObjectExtensions.as? UIComponentExtensions.as? mx.controls.TextArea? mx.core.UIObject? mx.core.UIComponent? К сожалению добраться до внутреннего TextField так и не удалось.
Не так часто приходилось иметь дело с компонентами, поэтому опыта маловато.
// _ta - компонент TextArea
for(i in _root._ta.label){
trace(i+" "+ _root._ta.label[i])
}
var ttf = _root._ta.label._getTextFormat();
for(ii in ttf){
trace(ii+" "+ttf[ii]);
}
К сожалению у этого дурацкого и абсолютно бесполезного компонента нет функции setTextFormat()... просто нет =) Наверное разработчики не предполагали, что кто-нибудь будет его использовать, поэтому и не доделали... чтоли =)
Хакать, хакать и еще раз хакать...
Спасибо за ответы. Ну что же, значит будем хакать. :)
Ну если прочесть пару разделов по ActionScript 2.0 влом, то хакайте.
Оказывается через метод setNewTextFormat() форматирование осуществить все-таки возможно, только нельзя указать начальный и конечный индексы. Не одно, так другое. Попробуем расширить класс TextFormat.
import mx.controls.TextArea;
this.createClassObject(TextArea,"my_ta",5,{text:"Test Button"});
f = new TextFormat();
f.color = 0xFF0000;
tf = function() {
delete onEnterFrame;
this.my_ta.label.setTextFormat(0,4,f);
}
onEnterFrame = tf;
Прояснилась суть проблемы. Как все просто, оказывается. :) Выражаю огромную благодарность __etc.
Теперь, конечно, и doLater() можно применить и redraw() сделать перед заданием форматирования.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.