Просмотр полной версии : Динамический текст разного цвета, в одном текстовом поле
Доброго всем времени суток. Вопрос мелкий, но фиг знает как сделать. В первом текстовом поле есть слово "Артикул: ", оно красное. Это слово передаётся в переменную "n". Второе текстовое поле чёрного цвета, к его тексу присоединяется переменная "n". Присоединятся-то присоединяется, а вот красный цвет, естественно меняется на чёрный. Можно-ли присоединить один текст к другому, без изменения форматирования первого? Или же, возможно сделать два форматирования текста, в одом текстовом поле?
...
this.createTextField("my_txt", this.getNextHighestDepth(), 100, 100, 300, 100);
var my_fmt:TextFormat = new TextFormat();
my_fmt.color = 0xff0000;
n = my_txt.text="Артикул: ";
my_txt.setTextFormat(my_fmt);
...
this.createTextField("one_txt", this.getNextHighestDepth(), 20, 20, 100, 110);
with (one_txt) {
border = true;
autoSize = true;
}
var one_format:TextFormat = new TextFormat();
one_format.color = 0x000000;
one_txt.text = n+this.Artikul;
one_txt.setTextFormat(one_format);
...
Или же, возможно сделать два форматирования текста, в одом текстовом поле?
public setTextFormat([beginIndex:Number], [endIndex:Number], textFormat:TextFormat) : Void
alekslitvinenk
09.05.2008, 22:06
Вот так :)
...
this.createTextField("my_txt", this.getNextHighestDepth(), 100, 100, 300, 100);
var my_fmt:TextFormat = new TextFormat();
my_fmt.color = 0xff0000;
n = my_txt.text="Артикул: ";
my_txt.setTextFormat(my_fmt);
...
this.createTextField("one_txt", this.getNextHighestDepth(), 20, 20, 100, 110);
with (one_txt) {
border = true;
autoSize = true;
}
var one_format:TextFormat = new TextFormat();
one_format.color = 0x000000;
one_txt.text = n+this.Artikul;
one_txt.setTextFormat(0, n.length-1,my_fmt);
one_txt.setTextFormat(n.length-1, one_format);
...
Спасибо Udaaff и Alekslitvinenk!
Alekslitvinenk!, Вы, немного не точно применили форматирование ко второму текстовому полю. Вот смотрите:
one_txt.setTextFormat(n.length-1, one_format);
Текст, действительно закрасился в красно-чёрный цвет. Только вышеизложенный код не устанавливает формат цвета для второго текстового поля. Чёрное, оно по умолчанию. А применить формат можно вот этим кодом
one_txt.setTextFormat(one_format);
Т.е. в моём примере необходимо было добавить лишь одну строчку кода, которая форматирует текст первого текстового поля. Причём требование должно быть такое: сначала идёт setTextFormat текстового поля one_format
one_txt.setTextFormat(one_format);
one_txt.setTextFormat(0, n.length-1,my_fmt);
alekslitvinenk
09.05.2008, 23:31
Вобщето, я ничего не понял :)
Я просто удалил последнюю строчку в вашем коде и добавил две других для форматирования текстового поля по частям, сначала форматирования слова "Артикул" а затем для всего остального текста в текстовом поле.
alekslitvinenk смотрите, one_format должен форматировать текст за словом "Артикул" в чёрный (или в люой другой установленный) цвет. Но текст за словом "Артикул" не форматируется никак. Я пробовал менять цвет в one_format, бесполезно, лишь поменяв две последние строчки (которые добавили Вы) и в верхней убрал все парамметры кроме названия форма, всё заработало.
one_txt.setTextFormat(one_format);
one_txt.setTextFormat(0, n.length-1,my_fmt);
Пробую сделать такую вещь. В текстовое поле выводится строка. "Артикул" и "Наименование" красные, а "1000" и "Статуэтки" зелёные.
"Артикул 1000
Наименование Статуэтки"
Всё в одном тестовом поле. Пока что не выходит. Есть идея сделать форматирование при помощи html и загрузить всё в динамическое текстовое поле. Слышал что так можно сделать. Буду проверять. Если можете подсказать, не откажусь от совета.
alekslitvinenk
11.05.2008, 00:58
Желательно для "Артикул" , "Наименование", "1000" и "Статуэтки" предусмотреть отдельные строковые переменные и затем выполнить форматирование текстового поля 4 раза используя свойство length этих строковых переменных для вычичления начальных и конечных индексов форматирования.
Первый раз, конечно, можно отформатировать сразу всю строку целиком.
Mnilionic
11.05.2008, 01:04
что мешает рендерить текст как html и раскрашивать его тегами?
my_text.html = true;
my_text.htmlText = "<font color='#FF0000'>Артикул:</font> " + articul_value;
my_text.htmlText += "<font color='#00FF00'>Наименование:</font> " + name_value;
alekslitvinenk, спасибо за подсказки!
Mnilionic, отлично, очень удобно форматировать текст с помощью тегов, в моём случае!
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.