0

我正在寻找一种方法来拍摄所有数据网格内容的快照,以包括超出屏幕底部的数据(即需要向下滚动 DG 以查看更多数据)。

获取当前显示数据的快照非常简单:

ImageSnapshot.defaultEncoder = PNGEncoder;
var snap:ImageSnapshot = ImageSnapshot.captureImage(myDG);
var imageBytes:ByteArray = snap.data;

我想出的唯一可能的解决方案是拍摄快照,检查数据网格是否可以滚动,滚动到下一个位置,拍摄另一个快照,第二个快照到第一个快照,重复直到数据网格结束。

该解决方案的问题是每个新快照都会显示标题。此外,最后一个快照很可能包含来自前一个图像的数据网格数据。

有没有人对如何做到这一点有任何其他想法?

4

1 回答 1

1

我正在寻找一种方法来拍摄所有数据网格内容的快照,以包括超出屏幕底部的数据(即需要向下滚动 DG 以查看更多数据)。

在基于 Flex 的列表类(包括 DataGrid)中,数据不会超出屏幕底部。dataProvider 中的每个项目都使用 itemRenderer 显示。itemRenderer 只会为显示的可视组件的数量创建,而不是为 dataProvider 中的每个项目创建。

当您滚动列表时,每个 itemRenderer 的 data 属性都会更改;从而改变显示。滚动实际上只是数据的模拟变化。我称整个过程渲染器回收。

如果要创建显示所有数据的 DataGrid 快照,则必须创建和呈现所有数据。在 MX DataGrid 中,您可以通过调整高度来做到这一点,以便所有项目都可见。在大多数 spark 布局中,有一个属性 useVirtualLayout 可以控制它。不过,我不知道它是否可以在 Spark DataGrid 中禁用。

于 2012-06-14T15:20:12.227 回答