0

Flex 4 アイテム レンダラーの作成に (itemRenderer または itemRendererFunction を介して) 簡単にフックして、カスタム オブジェクト プールからレンダラーをプルすることができますが、それらのレンダラーをプールに戻すにはどうすればよいでしょうか?

レイアウトの仮想化が一種のオブジェクト プーリングを行うことは理解していますが、それに接続する方法が必要です。たとえば、itemRendererFunction が仮想化されたレイアウトを持つデータ グループに割り当てられている場合、アイテム レンダラーの構築は確かに延期されますが、インスタンスは再利用されません。可能であれば、そこに介入できるようにしたいと考えています。

ただし、通常の仮想化レンダラー (インスタンス再循環される) の場合でも、プールを手動で管理できると便利です。プールはデータ グループ間で共有できます。たとえば、各グループに入力するために必要な初期バッファーを減らすことができます。

Flex がアイテム レンダラー インスタンスをいつ破棄するかを知る方法はありますか? 確実に伝える方法がないという気持ちが沈み込んでいます-おそらくあるはずですが.

または、機能するクレイジーなハック (すべてのレンダラーをプールに保持し、ステージ プロパティをテストして可用性を判断するなど) はありますか?

4

2 に答える 2

1

SkinnableDataContainer が出発点のようです。ドキュメントでは、 updateRendererを参照することをお勧めしますが、そのコードはあまり役に立ちません。

また、RendererExistenceEvent.RENDERER_ADD および RendererExistenceEvent.RENDERER_REMOVE イベントをディスパッチします。これは、何が起こっているかをキャプチャしたい場合にリッスンする価値があるかもしれません。

于 2010-10-06T11:08:22.803 に答える
0

これは非常に興味深い質問です。RENDERER_REMOVE は、使用後にインスタンスをプールに格納するための良い方法のようです。しかし、itemRenderer または itemRendererFunction を使用して (クラスの代わりに) INSTANCES をデータ グループに提供する方法がわかりません...

于 2010-12-22T15:17:46.573 に答える