![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Mar 2008
Сообщений: 57
|
На форуме нашел способ закрашивания ячейки путем переопределения класса Label, и проверки текущего значения
override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void {
super.updateDisplayList(unscaledWidth, unscaledHeight);
var g:Graphics = graphics;
g.clear();
var grid1:DataGrid = DataGrid(DataGridListData(listData).owner);
if (grid1.isItemSelected(data) || grid1.isItemHighlighted(data)) {
return;
}
if (data[DataGridListData(listData).dataField] > 100) {
g.beginFill(0xFF0033);
g.drawRect(0, 0, unscaledWidth, unscaledHeight); g.endFill();
}
}
Например если значение в текущей ячейки меньше чем в предыдущей, то текущую закрасить в красный цвет? |
|
|||||
|
Контрибьютор базы знаний по Флекс
Регистрация: Aug 2005
Сообщений: 690
|
Делай itemRenderer для ячейки, например, в виде VBox, которому можно задать фон в зависимости от тех свойств, которые тебе нужны, так как любой itemRenderer имеет доступ к свойству строки data c нужными тебе данными.
__________________
Flex 2 и Co |
|
|||||
|
Регистрация: Oct 2008
Сообщений: 9
|
Не стал создавать такую же тему. Так что пишу тут.
Вопрос тот же но условие другое. есть XML в которой есть некие данные <?xml version="1.0" encoding="utf-8"?> <colors> <color> <rect>█ █ █</rect> <hex_color>#F80000</hex_color> </color> <color> <rects> <rect>█ █ █</rect> <col>#F86800</col> </rects> <hex_color>F86800</hex_color> </color> </colors> <mx:DataGridColumn headerText="Цвет" width="75">
<mx:itemRenderer>
<mx:Component>
<mx:VBox horizontalAlign="center" verticalAlign="middle">
<mx:Label text="{data.rects.rect}" color="{data.rects.col}"/>
</mx:VBox>
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
<mx:DataGridColumn headerText="HEX" width="75">
<mx:itemRenderer>
<mx:Component>
<mx:VBox horizontalAlign="center" verticalAlign="middle">
<mx:Label text="#{data.hex_color}"/>
</mx:VBox>
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
При попытке сделать как по сабжу. получается не совсем то что я ожидаю. <mx:DataGridColumn headerText="Цвет" width="75">
<mx:itemRenderer>
<mx:Component>
<mx:VBox horizontalAlign="center" verticalAlign="middle">
<mx:Label text="{data.rect}" color="{data.hex_color}"/>
</mx:VBox>
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
<mx:DataGridColumn headerText="HEX" width="75">
<mx:itemRenderer>
<mx:Component>
<mx:VBox horizontalAlign="center" verticalAlign="middle">
<mx:Label text="{data.hex_color}"/>
</mx:VBox>
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
выдает тоже самое. Как я понял это из-за # в xml. Как мне вывести в нормальном (для меня) виде hex код цвета во втором варианте? Надеюсь я изъяснил суть своей проблемы доступно (а то у меня бывает что потом сам не понимаю) Прошу помощи у знающих. Потому как городит одну и туже инфу в разных вариациях это не рационально. |
|
|||||
|
Регистрация: Oct 2008
Сообщений: 9
|
Ммм спасибо! нашёл помогло.
что бы другие не искали upd: =( помогло, но как то не так. теперь при попытке вывести таких значений как "#000000" (чёрный цвет) получаю "0" "#0000F8" (синий) получаю "f8" как мне не только перевести числа в hex вид, но и сохранить (забыл слово) исходный вид цветового кода?! все превращения происходили таким путём: Последний раз редактировалось p.Omelchenko; 28.10.2008 в 15:50. |
![]() |
![]() |
Часовой пояс GMT +4, время: 16:56. |
|
|
« Предыдущая тема | Следующая тема » |
|
|