Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Цвет текста в пределах String (http://www.flasher.ru/forum/showthread.php?t=176573)

imediasun 13.03.2012 17:36

Цвет текста в пределах String
 
Здравствуйте подскажите пожалуйста как зделать надпись "Дети, приезжающие в лагерь вне организованных групп" красного цвета и жирной, а так же выровненной по центру текстового блока. Спасибо

Код AS3:

var someText:String = "   Педагогическая команда лагеря состоит из группы"+
"аниматоров (10 чел.), вожатых и сопровождающих организованных групп."+
"\nДети, приезжающие в лагерь вне организованных групп, ";
 
 
 
 
scrollText.text = someText;
scrollText.multiline = true;
scrollText.wordWrap = true;
 
 
function scrollUp (e:Event):void {
scrollText.scrollV -= 1;
trace (scrollText.scrollV);
}
 
function scrollDown (e:Event):void {
scrollText.scrollV += 1;
trace (scrollText.scrollV);
}
 
 
var bounds:Rectangle = new Rectangle(scrollMC.x, scrollMC.y, 0, 535);
var scrolling:Boolean = false;
 
function startScroll (e:Event):void {
scrolling = true;
scrollMC.startDrag (false,bounds);
}
 
function stopScroll (e:Event):void {
scrolling = false;
scrollMC.stopDrag ();
}
 
scrollMC.addEventListener (MouseEvent.MOUSE_DOWN, startScroll);
stage.addEventListener (MouseEvent.MOUSE_UP, stopScroll);
 
addEventListener (Event.ENTER_FRAME, enterHandler);
 
function enterHandler (e:Event):void {
if (scrolling == true) {
 scrollText.scrollV = Math.round(((scrollMC.y - bounds.y)/535)*scrollText.maxScrollV);
}
}


in4core 13.03.2012 17:43

Код AS3:

var someText:String = "   Педагогическая команда лагеря состоит из группы"+
"аниматоров (10 чел.), вожатых и сопровождающих организованных групп."+
"\n<font color="#FF0000>Дети, приезжающие в лагерь вне организованных групп</font>, ";
 
scrollText.htmlText = someText;


imediasun 13.03.2012 18:51

В таком случае не видно текста, находящегося в пределах <font> </font>

HardCoder 13.03.2012 19:00

Используй TextFormat
Код AS3:

var someText:String = "   Педагогическая команда лагеря состоит из группы"+
"аниматоров (10 чел.), вожатых и сопровождающих организованных групп."+
"\nДети, приезжающие в лагерь вне организованных групп, ";
 
scrollText.text = someText;
scrollText.multiline = true;
scrollText.wordWrap = true;
var format:TextFormat = new TextFormat("Times New Roman", "18", 0xFF0000, true, null, null, null, null, "center");
scrollText.setTextFormat(format, someText.indexOf("Дети"));


imediasun 13.03.2012 19:11

как format какой именно текст форматировать - так весь текст красный

Добавлено через 3 минуты
и текст находится посредине а не сначала скролл панели

HardCoder 13.03.2012 19:16

В текстфилда есть метод setTextFormat(). Он принимает в себя 3 параметра: формат, начальный индекс форматирования, конечный индекс форматирования. Тоесть, если нам нужно применить формат к буквам с десятой по пятнадцатую, то нужно написать:
Код AS3:

myTxt.setTextFormat(myFormat, 10, 15);


imediasun 13.03.2012 19:20

то есть как в данном случае написать в коде если необходимо віделить красным только слова Дети, приезжающие в лагерь вне организованных групп, а то весь текст красный

HardCoder 13.03.2012 19:25

Вот рабочий пример:
Код AS3:

var someText:String = "   Педагогическая команда лагеря состоит из группы аниматоров (10 чел.), вожатых и сопровождающих организованных групп.\nДети, приезжающие в лагерь вне организованных групп, ";
var scrollText:TextField = new TextField();
scrollText.text = someText;
scrollText.multiline = true;
scrollText.wordWrap = true;
scrollText.width = 400;
scrollText.height = 200;
var format:TextFormat = new TextFormat("Times New Roman", "18", 0xFF0000, true, null, null, null, null, "center");
scrollText.setTextFormat(format, someText.indexOf("Дети"), someText.length - 1);
this.addChild(scrollText);

Добавлено через 14 минут
Строчка
Код AS3:

scrollText.setTextFormat(format, someText.indexOf("Дети"), someText.length - 1);

Значит что мы делаем красный текст, начиная со слова "Дети" включительно до самого конца строки.

imediasun 13.03.2012 19:55

а получается текст весь красный, а до слова дети вообще нет текста

Добавлено через 5 минут
до слова дети текст появился, но не до конца строки, а до конца всего текста и почему то теперь текст появляется в скролл баре не с начала, а по центру, видимо это параметр "center" помогите пожалуйста до конца доделать а то работу сдавать, а я не понимаю

HardCoder 13.03.2012 20:14

У меня сейчас не открыт Adobe Flash, поэтому нет компонента UIScrollBar. Почему он так себя ведет - понятия не имею. Возможно проблема не в компоненте. TextField со своими свойствами работает везде одинаково. Я вам привел пример кода который работает на 100500 процентов. Этот код показывает на экране текстовое поле (не в скроллбаре). В этом текстовом поле выравнены по правому краю черные слова: " Педагогическая команда лагеря состоит из группы аниматоров (10 чел.), вожатых и сопровождающих организованных групп." В новой строчке, выравнены по середине и написаны красные слова: "Дети, приезжающие в лагерь вне организованных групп, ". Этот код рабочий - я проверял. Хотите верьте, хотите - нет.
И советую выложить весь код, который у вас есть, а то может быть такое, что здесь вам говорят одно, а вы делаете совсем другое. Общаться на пальцах - это не выход...

Добавлено через 5 минут
Не знаю, в курсе ли вы, но после обновления текста, или свойств текста в скроллбаре нужно обновлять сам скроллбар. Может причина не в этом, но убедитесь, что после применения формата к тексту у вас написано:
Код AS3:

myScrollBar.update();



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

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