カスタム Itemrenderer を含むスパーク リストがあります。約 500 の要素でバインドしているため、 virtuallayout を使用します。
アイテム レンダラーの datachange イベントを追跡したところ、最初の読み込みで約 120 個のアイテムがリストにバインドされていることがわかりました。ステージに 10 個のアイテムのみを表示する必要があるため、リストでフェッチされるアイテムの数を減らしたいのですが、この動作を取得するためにオーバーライドするプロパティまたは関数はありますか?
コードはとてもシンプルです
<s:List id="thumbnailList" verticalScrollPolicy="off"
useVirtualLayout="true" itemRenderer="ThumbnailItemRenderer" >
<s:layout>
<s:HorizontalLayout gap="10" requestedColumnCount="10" />
</s:layout>
</s:List>
アイテムレンダラー
<s:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
autoDrawBackground="false" >
<fx:Script>
override public function set data(value:Object):void{
super.data=value;
if(data !=null){
LoadImg();
}
}
protected function LoadImg():void{
trace(data.pagnum.toString());
var cacheDir:File=null;
cacheDir= Config.DirCache();
var folder:File = new File(cacheDir.nativePath + Config.CATALOG_FOLDER_NAME + Config.selected_catalog_id + "/");
var file:File = new File(folder.nativePath + "/" + data.pagnum.toString() + "_th.jpg");
trace(file.url);
thumbnail.source = file.url;
cacheDir=null;
folder=null;
file=null;
}
</fx:Script>
<s:Image id="thumbnail" top="0" left="0" right="0" bottom="0" scaleMode="letterbox" cacheAsBitmap="true" />
</s:ItemRenderer>
そしてリストの束縛
thumbnailList.dataProvider= {ArrayCollection with about 480 items}