0

我有一个带有自定义 Itemrenderer 的火花列表。我使用 virtuallayout ,因为我将它与大约 500 个元素绑定。

我跟踪了项目渲染器的 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}
4

0 回答 0