Fiz um component para usar como itemrenderer para trocar as 4 imagens de status da lista de usuarios de um chat onde usei um datagrid "embedando" as imagens:
<?xml version="1.0" encoding="utf-8"?> <mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml" horizontalAlign="center" verticalAlign="middle" implements="mx.controls.listClasses.IDropInListItemRenderer" > <mx:Script> <![CDATA[ import mx.controls.dataGridClasses.DataGridListData; import mx.events.FlexEvent; import mx.controls.listClasses.BaseListData; import mx.controls.listClasses.IDropInListItemRenderer; import mx.controls.listClasses.IListItemRenderer; private var _data:Object = null; override public function set data(value:Object):void { _data = value; invalidateProperties() dispatchEvent(new FlexEvent(FlexEvent.DATA_CHANGE)); } [Bindable("dataChange")] override public function get data():Object { return _data; } [Embed("assets/status_livre.png")] private var livreIcon:Class; [Embed("assets/status_ocupado.png")] private var ocupadoIcon:Class; [Embed("assets/status_voltologo.png")] private var voltologoIcon:Class; [Embed("assets/status_ausente.png")] private var ausenteIcon:Class; override protected function commitProperties():void { super.commitProperties(); if (_data != null) { switch(_data[_listData.dataField]) { case 0 : icon_img.source = livreIcon; break; case 1 : icon_img.source = ocupadoIcon; break; case 2 : icon_img.source = voltologoIcon; break; case 3 : icon_img.source = ausenteIcon; break; } } } private var _listData:DataGridListData; [Bindable("dataChange")] public function get listData():BaseListData { return _listData; } public function set listData(value:BaseListData):void { _listData = DataGridListData(value); } ]]> </mx:Script> <mx:Image id="icon_img" source="livreIcon" /> </mx:VBox> Basta vc mudar para [Embed("assets/doc.png")] private var docIcon:Class;, etc... e no if (_data != null) { switch(_data[_listData.dataField]) { case doc : icon_img.source = livreIcon; break; etc... p/ implementar no datagrid <mx:DataGridColumn dataField="id_status" headerText="" itemRenderer="caminhonasuaapp.StatusChat" /> [ ]'s Ricardo On Jun 5, 7:21 am, "Elvis Fernandes" <[EMAIL PROTECTED]> wrote: > Como essa informação vem do banco? Formato texto? > > Bom, de qualquer forma o que você pode fazer é definir a propriedade > source={suaFuncao(data)}, onde suaFuncao() é uma função [Bindable] que > recebe o objeto data do dataProvider e verifica qual imagem deve ser > mostrada, retornando a imagem apropriada. > > Espero ter sido claro. =) > > Elvis Fernandeshttp://www.elvis.eti.br > > 2008/6/4 Lorenzi <[EMAIL PROTECTED]>: > > > > > > > > > Pessoal preciso de uma ideia, como faço pra mudar a imagem em tempo de > > excucao, tipo se o dataFiled extensao for doc mostra a imagem do word > > se for xls mostra do excel. Estes dados vem do banco. > > > <mx:DataGrid x="10" y="43" width="550" id="gridDcto" height="198" > > dataProvider="{populaGrid}"> > > <mx:columns> > > <mx:DataGridColumn headerText="Numero" > > dataField="numero_dcto"/> > > <mx:DataGridColumn headerText="Nome" > > dataField="nome_dcto"/> > > <mx:DataGridColumn headerText="Extensao" > > dataField="extensao"/> > > <mx:DataGridColumn dataField="image" > > headerText="EXT" width="50" editable="false" > > sortable="false" resizable="false"> > > <mx:itemRenderer> > > <mx:Component id="ImageRenderer"> > > <mx:VBox horizontalAlign="center" > > verticalAlign="middle"> > > <mx:Image verticalAlign="middle" source="{../ > > excel.jpg}"/> > > </mx:VBox> > > </mx:Component> > > </mx:itemRenderer> > > </mx:DataGridColumn> > > </mx:columns> > > </mx:DataGrid> --~--~---------~--~----~------------~-------~--~----~ Você recebeu esta mensagem porque está inscrito na lista "flexdev" Para enviar uma mensagem, envie um e-mail para [email protected] Para sair da lista, envie um email em branco para [EMAIL PROTECTED] Mais opções estão disponíveis em http://groups.google.com/group/flexdev -~----------~----~----~----~------~----~------~--~---
