【问题标题】:Flex 4 Datagrid overlayFlex 4 数据网格覆盖
【发布时间】:2011-06-14 09:01:23
【问题描述】:

我需要在数据网格单元格上绘制叠加层。我希望叠加层位于底层单元格数据之上并显示交叉影线图案,即:水平和垂直线,就像单元格中的小网格。

覆盖的想法是显示当一段时间没有收到数据时,数据已经过时或陈旧。

我很确定我需要在渲染器的 updateDisplayList() 中做一些事情,但我没有使用过绘图 API,所以我不知道该怎么做。

任何帮助将不胜感激。

谢谢 标记

【问题讨论】:

    标签: datagrid flex4 overlay


    【解决方案1】:

    所以我假设 ItemRenderer 有 2 种状态,一种称为“新”,一种称为“旧”,对吗?

    一个好消息:您不需要重写 updateDisplayList 函数。 Flex SDK 4+ 为您提供名为 FXG 的图形实用程序。您可以访问此链接了解更多信息:http://help.adobe.com/en_US/flex/using/WS145DAB0B-A958-423f-8A01-12B679BA0CC7.html

    在你的情况下,你可以这样做:

    <?xml version="1.0" encoding="utf-8"?>
    <s:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" 
                    xmlns:s="library://ns.adobe.com/flex/spark" 
                    xmlns:mx="library://ns.adobe.com/flex/mx" width="50" height="50" click="currentState = 'old'">
        <fx:Declarations>
            <!-- Place non-visual elements (e.g., services, value objects) here -->
        </fx:Declarations>
        <s:states>
            <s:State name="new" />
            <s:State name="old" />
        </s:states>
        <s:BorderContainer width="50" height="50">
            <s:Label text="{data.toString()}" />
        </s:BorderContainer>
        <s:Path data="M 0 10 L 50 10 M 0 20 L 50 20 M 0 30 L 50 30 M 0 40 L 50 40 M 10 0 L 10 50 M 20 0 L 20 50 M 30 0 L 30 50 M 40 0 L 40 50"
                includeIn="old">
            <s:stroke>
                <s:SolidColorStroke color="black" weight="1" />
            </s:stroke>
        </s:Path>
    </s:ItemRenderer>
    

    想法:创建一个路径(绘制您的网格)并将其置于“旧”状态,每当项目更改为“旧”状态时,网格就会出现。

    【讨论】:

      猜你喜欢
      • 2011-09-05
      • 1970-01-01
      • 2016-11-10
      • 1970-01-01
      • 1970-01-01
      • 2011-02-18
      • 2011-07-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多