Установка имени и размера шрифта в элементе управления AS3 List (flash.controls.List)

Как с помощью CS4 установить шрифт элемента управления List? Я пробовал это:

        var myFormat:TextFormat = new TextFormat();
        myFormat.font = config.settings["list font name"];
        myFormat.size = Number(config.settings["list font size"]);
        list.setStyle("textFormat", myFormat);

Нет игральных костей.


person Paul Chernoch    schedule 26.06.2009    source источник
comment
Я еще не понял, как установить шрифт, но нашел отличный пример того, как сделать так, чтобы цвета в чередующихся строках списка менялись по цвету: actionscript.org/forums/showthread.php3?t=188206 (В AS2 было иначе - нужна была только одна строка. Теперь вам нужно одна строка плюс целых три класса.)   -  person Paul Chernoch    schedule 27.06.2009


Ответы (3)


Вы можете установить стили по экземпляру, классу и глобально.

Для выбираемых списков (List, ComboBox, TileList и т. д.) необходимо использовать setRendererStyle вместо setStyle, потому что вы устанавливаете стили для каждого средства визуализации/элемента ячейки, а не для самого списка, если это имеет смысл:

list.setRendererStyle('textFormat',myFormat);

Также вы можете использовать глобальные стили с помощью StyleManager.

Сначала убедитесь, что ваши шрифты встроены, а затем попробуйте

import fl.managers.StyleManager;

var myFormat:TextFormat = new TextFormat(config.settings["list font name"],config.settings["list font size"]);
StyleManager.setStyle('embedFonts',true);
StyleManager.setStyle('textFormat',myFormat);
person George Profenza    schedule 29.08.2009

К сожалению, мне потребовалось много времени, чтобы понять это:
http://help.adobe.com/en_US/AS3LCR/Flash_10.0/fl/controls/SelectableList.html#setRendererStyle()

person Will Mavis    schedule 19.10.2009

Кажется, приведенные выше ответы довольно старые, и они больше не работают для меня ... Ссылка, предоставленная Уиллом Мэвисом, также больше не открывается.

Во всяком случае, я нашел способ, который работал для меня (на Flash CS6): (и, как написано выше, не забудьте вставить свой шрифт)

import fl.managers.StyleManager;
import flash.text.TextFormat

var myFormat:TextFormat = new TextFormat();
myFormat.font = "Arial";  // your font
myFormat.size = 20;  // your font size
myList.setRendererStyle('textFormat',myFormat);
myList.rowHeight = 30;  // if you want to change the row height (to better match the text size)
person Koby.G    schedule 27.04.2018