Flex itemrenderer禁用翻转但保持交替颜色

时间:2011-06-01 08:31:07

标签: flex effects itemrenderer rollover

有没有办法自定义项呈示器的翻转和选定颜色而不会丢失交替的背景颜色?

当我将autoDrawBackground标志设置为false时,翻转效果会停止,但由于某种原因,也不会绘制交替背景。

我想创建一个渲染器,它在状态悬停时绘制白色边框,在选中时使用黄色边框而不是默认的翻转颜色。 我还想保留我在列表中设置的交替背景颜色。

有什么建议吗?

2 个答案:

答案 0 :(得分:2)

您可以使用ItemRenderer类的'itemIndex'属性来绘制背景。例如:

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>

使用这种技术,你显然可以做更复杂的事情,比如渐变,alphas效果等等。

答案 1 :(得分:1)

<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>

如果我没有误解你的问题,我认为这就是你所需要的:)