Просмотр полной версии : проблемы с setStyle("textFormat",
evgen4ik
15.08.2011, 19:08
всем доброго дня!
Пороблема в задании цвета и размера лейбла с помощью setStyle.
Стиль шрифта, жирность, наклон, ... назначаются нормально. А вот цвет и размер приходится задавать через label.color и label.size.
Подскажите, плиз, решается ли эта проблема. И, если да, то как!
не понятно о каком лейбле речь
посмотрел fl.controls.Label, он нормально воспринимает цвет и размер в текстФормате через setStyle
evgen4ik
15.08.2011, 19:49
Речь идёт об обычном лейбле.
Привожу код создания компонента:
private function createHeaderTitleLabel():Label
{
var textFormat:TextFormat = FontManager.getTextFormatByQuestInfoWindowsTitleLabel();
var temp:Label = new Label();
temp.left = 140;
temp.top = 10;
temp.setStyle("textFormat", textFormat);
temp.setStyle("embedFonts", true);
return temp;
}
Часть класса FontManager:
public static function getTextFormatByQuestInfoWindowsTitleLabel():TextFormat
{
return getTextFormat(FONT_FAMALY_STORY, FONT_SIZE_22, FONT_COLOR_DARK_BLUE, true);
}
protected static function getTextFormat(fontFamaly:String = null, size:uint = 12, color:uint = 0, bold:Boolean = false):TextFormat
{
var textFormat:TextFormat = new TextFormat();
textFormat.font = fontFamaly;
textFormat.size = size;
textFormat.color = color;
textFormat.bold = bold;
return textFormat;
}
Повторюсь: при таком подходе не задаётся размер и цвет текста создаваемого лейбла! :(
Проблема в том, что через стиль "textFormat" не задается размер и цвет текста.
evgen4ik
15.08.2011, 20:02
dimarik, ты прям философ!
почему тогда используется объект класса TextFormat (в котором есть цвет и размер) для задания стиля "textFormat"??
От адобов:
Use styles with the Label component
/* Create a new TextFormat object, which allows you to set multiple text properties at a time. */
var tf:TextFormat = new TextFormat();
tf.color = 0xFF0000;
/* Apply this specific text format (red text) to the Label instance. */
a_label.setStyle("textFormat", tf);
Если у вас компонент Label, то все должно работать.
не известно что есть FONT_FAMALY_STORY, FONT_SIZE_22, FONT_COLOR_DARK_BLUE и нет ли там подвоха,
но какбы 'напрямую' все задается , я что-то не так делаю?
var label:Label = new Label();
label.autoSize = TextFieldAutoSize.LEFT;
label.setStyle("textFormat", new TextFormat("_sans", 48, 0xFF0000));
addChild(label);
evgen4ik
15.08.2011, 20:17
У меня компонент spark.components.Label
Добавлено через 4 минуты
не известно что есть FONT_FAMALY_STORY, FONT_SIZE_22, FONT_COLOR_DARK_BLUE и нет ли там подвоха
подвоха нет)) это обыкновенные константы, значение которых указано в названии.
у spark.components.Label есть fontFamily, color, fontSize, ..
а textFormtat вроде бы и вовсе нет
тогда странно, что вообще что-то работает и как он в AS3 вообще работает тоже интересно
evgen4ik
15.08.2011, 20:49
да уж....
Проблема в том, у Spark-компонента Label через стиль "textFormat" не задается размер и цвет текста.
Вопрос сформулирован. Тема переезжает в соответствующий раздел.
>>у Spark-компонента Label через стиль "textFormat" не задается размер и цвет текста
а смысл чего-то ждать от стиля, который компонент не поддерживает ?
может в соответствующем разделе разрулят :)
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.