Ontem criei um post falando sobre um problema que tive no itemRenderer com imagens veja o post http://www.bindable.com.br/blog/problema-de-itemrenderer-com-imagens. Na época a única solução que havia encontrado foi a do post, mas o Mario Junior ontem me apontou uma solução mais elegante e proposta na documentação da Adobe http://livedocs.adobe.com/flex/3/html/help.html?content=cellrenderer_7.html, implementei no meu exemplo e funcionou perfeitamente.
A alteração consiste em setar a minha imagem não no creationCompleter e sim dando um override no método “set data”, veja como ficou o código:
<mx:itemRenderer> <mx:Component> <mx:Box verticalAlign="middle" horizontalAlign="center"> <mx:Script> <![CDATA[ import mx.events.FlexEvent; /** * Embeda as 3 imagens que serão utilizada no exemplo * */ [Embed('imagem1.png')] private var Img1:Class; [Embed('imagem2.png')] private var Img2:Class; [Embed('imagem3.png')] private var Img3:Class; override public function set data(value:Object):void { super.data = value; if(value != null) { if(value.titulo == "imagem1") { img.source = Img1; img.toolTip = value.titulo; } else if(value.titulo == "imagem2") { img.source = Img2; img.toolTip = value.titulo; } else if(value.titulo == "imagem3") { img.source = Img3; img.toolTip = value.titulo; } } else { img.visible=false; } dispatchEvent(new FlexEvent(FlexEvent.DATA_CHANGE)); } ]]> </mx:Script> <mx:Image id="img" width="20" height="20" autoLoad="true" creationComplete="init()" /> </mx:Box> </mx:Component> </mx:itemRenderer>
Obrigado a todos pelas considerações.
Até a próxima.




