您可以很容易地(通過itemRenderer或itemRendererFunction)掛鉤創建Flex 4項目渲染器,從而允許您從自定義對象池中提取渲染器,但是您將如何把那些渲染器放回池中?如何爲Flex數據/項目渲染器實現對象池
我明白,佈局虛擬化做了一種形式的對象池,但我想要一種方式來接入。例如,當一個itemRendererFunction被分配給一個帶有虛擬化佈局的數據組時,項目渲染器的構造確實被推遲了,但是這些實例沒有被重用 - 如果可能的話,我希望能夠介入。
但即使在普通虛擬化渲染器(實例爲重新循環)的情況下,仍然可以手動管理池。例如,可以在數據組之間共享池,以減少填充每個組所需的初始緩衝區。
有沒有什麼辦法知道Flex什麼時候放棄項目渲染器實例?我有一種下沉的感覺,那就是沒有可靠的方法來說明 - 儘管也許應該有。
或者,有沒有可以工作的瘋狂黑客(比如保留池中的所有渲染器並測試其舞臺屬性以確定可用性)?
這是一個粗略的實現,伎倆:https://github.com/darscan/ robotlegs-extensions-Oil/blob/master/src/org/robotlegs/oil/flex/PooledRendererFactory.as – 2011-01-07 17:47:09