Flex itemrenderer отключает опрокидывание, но сохраняет чередующиеся цвета - PullRequest
1 голос
/ 01 июня 2011

Есть ли способ настроить опрокидывание и выбранные цвета средства визуализации элементов, не теряя чередующиеся цвета фона?

Когда я устанавливаю для флага autoDrawBackground значение false, эффекты переворачивания прекращаются, но по какой-то причине чередующийсяфон также не рисуется.

Я хотел бы создать средство рендеринга, которое рисует белую границу при наведенном состоянии и желтую границу при выбранном цвете вместо цвета по умолчанию.Я также хотел бы сохранить свои чередующиеся цвета фона, которые я установил в списке.

Есть предложения?

Ответы [ 2 ]

2 голосов
/ 01 июня 2011

Вы можете использовать свойство itemIndex класса ItemRenderer для рисования фона.Например:

override protected function updateDisplayList(unscaledWidth:Number,
                                              unscaledHeight:Number):void 
{
    backgroundFill.color = itemIndex % 2 ? 0xff0000 : 0x00ff00;
    super.updateDisplayList(unscaledWidth, unscaledHeight);
}

будет чередоваться между красными и зелеными строками для фоновой графики, например:

<s:Rect id="background" left="0" right="0" top="0" bottom="0">
    <s:fill>
        <s:SolidColor id="backgroundFill" />
    </s:fill>
</s:Rect>

Используя эту технику, вы, очевидно, можете делать и более сложные вещи, такие как градиенты, альфа-эффекты и пр.

1 голос
/ 01 июня 2011
<s:states>
    <s:State name="normal"  />
    <s:State name="hovered"  />
    <s:State name="selected"  />
</s:states>

<s:BorderContainer backgroundColor.selected="0xA9C6EE" backgroundColor.normal="0xffffff" backgroundColor.hovered="0xCEDBEE" height="50" width="233">        

</s:BorderContainer>

Я думаю, это то, что тебе нужно, если я не понял твоего вопроса:)

...