0

複数の画像(従業員の顔写真)をロードするflex 3 TileListがあります。

TileList にロードしている画像は、DataBase に保存されます (画像を DB に保存するために、ByteArray クラスと Base 64 エンコーディングを使用します)。

DB から TileList に画像を読み込むと問題なく正しく表示されるのですが、TileList を下にスクロールして再度上にスクロールすると、画像の位置が変わってしまうので、例えば最初の位置にある画像3番目などになる可能性があります....

誰かがそれを修正する方法を知っていますか?

前もって感謝します!

PS : TileList の ItemRenderer のコードは次のとおりです。

private function init():void { img.load(data.imageData); }

]]>

4

1 に答える 1

2

問題は、Flex のリスト タイプ コンポーネントがレンダラー プーリングを使用することです (つまり、スクロールすると、同じレンダラーが別のアイテムに再利用されます)。init メソッドは creationComplete でのみ呼び出されるか、レンダラーのライフサイクルの開始時にのみ呼び出されると思うので、データを変更しても画像は変更されません。

代わりに設定データをオーバーライドできます

override public function set data(value:Object):void {
    super.data = value;
    if(value)
        img.load(value.imageData);
}
于 2009-11-19T14:57:55.530 に答える