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
-~----------~----~----~----~------~----~------~--~---

Responder a