Events 使用Flex 4的ListEvent的ITEM_单击处理程序

Events 使用Flex 4的ListEvent的ITEM_单击处理程序,events,flex4,Events,Flex4,如何在flex 4 mobile项目中为spark ListEvent设置项目\单击。我已经这样试过了 import spark.events.ListEvent; fileList.addEventListener(ListEvent.ITEM_CLICK,itemDownloadHandler); private function itemDownloadHandler(event:ListEvent):void { trace("now in it

如何在flex 4 mobile项目中为spark ListEvent设置项目\单击。我已经这样试过了

import spark.events.ListEvent;
fileList.addEventListener(ListEvent.ITEM_CLICK,itemDownloadHandler);

private function itemDownloadHandler(event:ListEvent):void
        {
            trace("now in item");
            // creating new FileReference
            file= new FileReference();
            // saving the clicked item to your computer
            // brings out a savedialogue

               file.save(event.itemRenderer.data.file,event.itemRenderer.data.label);

        }  

这段代码在Flex3中运行良好,但我不知道如何在Flex4中使用这个单击事件。我也尝试过ItemClickEvent,但我不知道如何在ItemClickEvent中使用event.itemRenderer。请任何人给我一些解决这个问题的建议。提前感谢。

在Flex4中,列表组件上不再有单击事件。您可以在列表的
渲染器中添加
鼠标\u单击
侦听器\u添加
,并在
渲染器\u删除
处理程序中删除单击侦听器。我使用这种方法来确保渲染器实例可以被GCed。

例如:

fileList.addEventListener(RendererExistenceEvent.RENDERER_ADD , onRendererAdd );
fileList.addEventListener(RendererExistenceEvent.RENDERER_REMOVE , onRendererRemove);

function onRendererAdd(event:RendererExistenceEvent){
event.renderer.addEventListener(MouseEvent.CLICK, onRendererClick );
};

function onRendererRemove(event:RendererExistenceEvent){
event.renderer.addEventListener(MouseEvent.CLICK , onRendererClick );
};

function onRendererClick(event:MouseEvent){
// your actions here ... 
trace("now in item");
};