0

画面の下部を超えて広がるデータを含めるために、データグリッドのすべてのコンテンツのスナップショットを作成する方法を探しています (つまり、DG を下にスクロールして、より多くのデータを表示する必要があります)。

現在表示されているデータのスナップショットを取得するのは簡単です。

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

私が思いついた唯一の解決策は、スナップショットを作成し、データグリッドがスクロールできるかどうかを確認し、次の位置までスクロールし、別のスナップショットを作成し、2 番目のスナップショットから最初のスナップショットへ、データグリッドが終了するまで繰り返すことです。

このソリューションの問題は、すべての新しいスナップショットにヘッダーが表示されることです。さらに、最後のスナップショットには、前のイメージのデータグリッド データが含まれている可能性が高くなります。

これを達成する方法について他に考えがある人はいますか?

4

1 に答える 1

1

データグリッドのすべてのコンテンツのスナップショットを取得して、画面の下部を超えて拡張するデータを含める方法を探しています(つまり、DGを下にスクロールしてさらにデータを表示する必要があります)。

Flexベースのリストクラス(DataGridを含む)では、データは画面の下部を超えて拡張されません。dataProviderの各アイテムは、itemRendererを使用して表示されます。itemRendererは、dataProviderのすべてのアイテムではなく、表示されたビジュアルコンポーネントの数に対してのみ作成されます。

リストをスクロールすると、各itemRendererのデータプロパティが変更されます。したがって、表示が変更されます。スクロールは、実際にはデータの変更をシミュレートしたものにすぎません。私はプロセスレンダラー全体をリサイクルと呼んでいます。

すべてのデータが表示されたDataGridのスナップショットを作成する場合は、すべてのデータを作成してレンダリングする必要があります。MX DataGridでは、すべてのアイテムが表示されるように高さを調整することでこれを行うことができます。ほとんどのスパークレイアウトには、これを制御するプロパティuseVirtualLayoutがあります。ただし、SparkDataGridで無効にできるかどうかはわかりません。

于 2012-06-14T15:20:12.227 に答える