![]() |
|
||||||||||
|
|||||
|
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
Решил упростить себе жизнь и взял стандартный компонент List.
Как настраивать гарнитуру и размер шрифта? Судя по описанию, через метод setStyle(), но что-то не вижу стиля для шрифта (распечатал через getStyleDefinition) upArrowUpSkin : ScrollArrowUp_upSkin repeatDelay : 500 upArrowOverSkin : ScrollArrowUp_overSkin downArrowUpSkin : ScrollArrowDown_upSkin upArrowDownSkin : ScrollArrowUp_downSkin downArrowOverSkin : ScrollArrowDown_overSkin focusRectPadding : null downArrowDownSkin : ScrollArrowDown_downSkin trackUpSkin : ScrollTrack_skin downArrowDisabledSkin : ScrollArrowDown_disabledSkin trackOverSkin : ScrollTrack_skin skin : List_skin cellRenderer : [class CellRenderer] upArrowDisabledSkin : ScrollArrowUp_disabledSkin thumbDisabledSkin : ScrollThumb_upSkin thumbUpSkin : ScrollThumb_upSkin trackDisabledSkin : ScrollTrack_skin contentPadding : 0 focusRectSkin : null thumbDownSkin : ScrollThumb_downSkin trackDownSkin : ScrollTrack_skin thumbOverSkin : ScrollThumb_overSkin disabledAlpha : 0.5 thumbIcon : ScrollBar_thumbIcon repeatInterval : 35 package classes { import flash.display.Sprite import flash.events.*; import fl.data.DataProvider; import fl.controls.List; import flash.text.*; public class UserList extends Sprite { private var availableItems:List; public function UserList() { createComponents(); setupComponents(); } private function setupComponents():void { var dp:Array = new Array(); var i:uint; var count:uint = availableItems.rowCount * 2; for (i = 0; i < count; i++) { dp.push({label:"Item " + i}); } availableItems.dataProvider = new DataProvider(dp); availableItems.addEventListener(Event.CHANGE, updateLists); availableItems.addEventListener(Event.CHANGE, showStyleDefinition); } private function updateLists(e:Event):void { trace(availableItems.selectedItem.label); } private function createComponents():void { availableItems = new List(); availableItems.setSize(300, 300); availableItems.move(100, 100); addChild(availableItems); } private function showStyleDefinition(e:Event):void { var componentClass:Class = List; var styles:Object = componentClass["getStyleDefinition"].call(availableItems); var styleData:DataProvider = new DataProvider(); for(var i:* in styles) { trace(i + " : " + styles[i]); } } } } Последний раз редактировалось mikhailk; 21.10.2010 в 14:17. |
|
|||||
|
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
я это попробовал первым делом
чего-то не получилось нет, не работает: Последний раз редактировалось mikhailk; 21.10.2010 в 14:36. |
|
|||||
|
Хех. Это флэшовые компоненты - привыкай.
Нужно задать свой рендерер: В этом рендерере переопределить data (или listData), где задавать текстовый формат - но уже для рендерера, а не для листа. |
|
|||||
|
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
ок, я что-то такое и подозревал...
кстати, нашел аварийный способ ![]() StyleManager.setStyle("textFormat", textFormat); Лупит по всем компонентам сразу. Опубликую правильное решение, может кому пригодится. 1. Переопределяем свой рендерер: package classes { import fl.controls.listClasses.CellRenderer; import flash.text.TextFormat; public class CustomCellRenderer extends CellRenderer { public function CustomCellRenderer() { var format:TextFormat = new TextFormat("Arial", 14); setStyle("textFormat", format); } } } Последний раз редактировалось mikhailk; 21.10.2010 в 15:03. |
![]() |
![]() |
Часовой пояс GMT +4, время: 23:18. |
|
|
« Предыдущая тема | Следующая тема » |
|
|