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

发布于 2024-11-11 18:24:25 字数 209 浏览 2 评论 0原文

有没有办法在不丢失交替背景颜色的情况下自定义项目渲染器的翻转和选定颜色?

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

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

有什么建议吗?

Is there a way to customize the rollover and selected colors of an item renderer without losing the alternating background colors?

When i set the autoDrawBackground flag to false the roll over effects stops but for some reason the alternating background is also not drawn.

I would like to create a renderer which draws a white border on state hovered and a yellow border on selected instead of the default rollover color.
I would also like to keep my alternating background colors i set on the list.

Any suggestions?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

逆光飞翔i 2024-11-18 18:24:25

您可以使用 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>

使用这种技术,您显然也可以做更复杂的事情,例如渐变、Alpha 效果等。

You could use the 'itemIndex' property of the ItemRenderer class to draw the background. For instance:

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

would alternate between red and green rows for a background graphic like this:

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

Using this technique, you could obviously do more complex things too, like gradients, alphas effects and so on.

掀纱窥君容 2024-11-18 18:24:25
<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>

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

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

I think that's what you need if i didn't misunderstand your question :)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文