Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   TextFormat и компонент TextArea (http://www.flasher.ru/forum/showthread.php?t=86366)

nbno 13.10.2006 10:17

TextFormat и компонент TextArea
 
Можно ли применить форматирование текста к компоненту TextArea с помощью класса TextFormat или есть альтернатива? У меня не вышло.
В хелпе есть TextArea.styleSheet, но это не совсем подходит (как мне показалось). То есть целью является форматирование текста с возможностью указания начального и конечного индексов. В случае со свойством styleSheet это делается вручную с помощью создания и подстановки тегов, что является не очень удобным для меня решением.

Nirth 13.10.2006 10:35

можно расширить компонент TextArea, и добавить нужные свойства и методы.

nbno 14.10.2006 02:31

Не подскажите, каким способом это можно осуществить? Точнее в каком направлении копать? UIObjectExtensions.as? UIComponentExtensions.as? mx.controls.TextArea? mx.core.UIObject? mx.core.UIComponent? К сожалению добраться до внутреннего TextField так и не удалось.

Не так часто приходилось иметь дело с компонентами, поэтому опыта маловато.

wvxvw 14.10.2006 03:24

Код:

// _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()... просто нет =) Наверное разработчики не предполагали, что кто-нибудь будет его использовать, поэтому и не доделали... чтоли =)

Nirth 14.10.2006 12:10

Хакать, хакать и еще раз хакать...

nbno 14.10.2006 12:22

Спасибо за ответы. Ну что же, значит будем хакать. :)

Nirth 14.10.2006 12:51

Ну если прочесть пару разделов по ActionScript 2.0 влом, то хакайте.

nbno 14.10.2006 18:42

Оказывается через метод setNewTextFormat() форматирование осуществить все-таки возможно, только нельзя указать начальный и конечный индексы. Не одно, так другое. Попробуем расширить класс TextFormat.

etc 15.10.2006 01:43

Код:

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;


nbno 15.10.2006 08:03

Прояснилась суть проблемы. Как все просто, оказывается. :) Выражаю огромную благодарность __etc.
Теперь, конечно, и doLater() можно применить и redraw() сделать перед заданием форматирования.


Часовой пояс GMT +4, время: 03:18.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.