<?xml version="1.0"?>
<!-- dpcontrols/TreeIconField.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml";>

   <mx:Script>
      <![CDATA[
         [Bindable]
         [Embed(source="assets/radioIcon.jpg")] 
         public var iconSymbol1:Class; 
         [Bindable]
         [Embed(source="assets/topIcon.jpg")] 
         public var iconSymbol2:Class; 
      ]]>
   </mx:Script>

   <mx:Tree iconField="@icon" labelField="@label" showRoot="false" 
      width="160">
      <mx:XMLList>
         <node label="New">
            <node label="HTML Document" icon="iconSymbol2"/>
            <node label="Text Document" icon="iconSymbol2"/>
         </node>
         <node label="Close" icon="iconSymbol1"/>
      </mx:XMLList>
   </mx:Tree>
</mx:Application>

ou
utilize CSS
Tree.myTree
{
    default-leaf-icon:        
Embed("br/com/brbsoftware/common/assets/botones/hoja.png");
    folder-closed-icon:       
Embed("br/com/brbsoftware/common/assets/botones/folder_close_blue.png");
    folder-open-icon:         
Embed("br/com/brbsoftware/common/assets/botones/folder_open_blue.png");
    disclosure-closed-icon:   
Embed("br/com/brbsoftware/common/assets/botones/open_folder.png");
    disclosure-open-icon:     
Embed("br/com/brbsoftware/common/assets/botones/close_folder.png");
    color:                    #333333;
    text-roll-over-color:     #333333;
    text-selected-color:      #333333;
    roll-over-color:          #e4e4e4;
    selection-color:          #cdcdcd;
}
e no seu MXML coloque 
<mx:Tree id="treeQualquer" styleName="myTree"  ….blablabla />



brunobg
*********************************************
www.brbsoftware.com.br
bruno...@ig.com.br  (MSN & Skype)
blogflex.brunobg.com
@brunogrohs
(21) 9913-2397

Em 24/10/2013, às 16:46, Leonardo Oliveira <leonardoc.olive...@gmail.com> 
escreveu:

> Robinho, como eu não tenho problema nenhum em ajudar quem quer aprender, dá 
> uma olhada nesse código, é o que eu uso. Ele traz os ícones do banco em um 
> campo blob e monta em abas e em tree. Cada aba, que também têm seus ícones, 
> possui um tree. Já vou avisando aos corneteiros de plantão que fiz o código 
> quando estava aprendendo, há anos, nunca mais voltei nele pra melhorar.
> 
>                       private function 
> rstSucessoGetMenus(evt:ResultEvent):void{
>                               if (evt.result != null){
>                                       /*
>                                       * RECEBE OS MENUS 
>                                       */
>                                       menus = new 
> ArrayCollection(Array(evt.result));
>                                       
>                                       /*
>                                       * MONTA ABAS (MENU PRINCIPAL) 
>                                       */
>                                       for(var i:uint; i<evt.result.length; 
> i++){
>                                               if(evt.result[i].children != 
> null){
>                                                       var 
> navigatorContent:NavigatorContent = new NavigatorContent();
>                                                       navigatorContent.label 
> = evt.result[i].label;
>                                                       //navigatorContent.icon
>                                                       
> navigatorContent.percentWidth = 100;
>                                                       
> navigatorContent.percentHeight = 100;
>                                                       navigatorContent.id = 
> "_tab"+navigatorContent.label.replace(" ", "_");
>                                                       
> navigatorContent.addEventListener(MouseEvent.CLICK, handlerSelectAba);
>                                                       
> _abas.addChild(navigatorContent);
>                                                       
>                                                       if(evt.result[i].icone 
> != null){
>                                                               
> loaderCustomizadoAbas = new LoaderCustomizado();
>                                                               
> loaderCustomizadoAbas.paramCustom = navigatorContent;
>                                                               
> loaderCustomizadoAbas.contentLoaderInfo.addEventListener(Event.COMPLETE, 
> getBitmapDataAbas);
>                                                               
> loaderCustomizadoAbas.loadBytes(evt.result[i].icone);
>                                                       }
>                                               }
>                                       }
>                                       
>                                       /*
>                                       * MONTA MENU TREE
>                                       */      
>                                       for(var j:uint=0; 
> j<evt.result.length;j++){
>                                               if(evt.result[j].children != 
> null){
>                                                       montarMenuTree(j);
>                                                       return;
>                                               }
>                                       }
>                               }                                               
>                 
>                       }                   
>                       
>                       private function rstFalhaGetMenus(evt:FaultEvent):void{
>                               Funcoes.mensagem("Falha ao retornar lista de 
> menus autorizados:\n" + evt.message,"E",null);
>                       }
>                       
>                       private function montarMenuTree(index:uint):void{
>                               /*
>                               * MONTA O TREE CONFORME ÍNDICE
>                               */
>                               acChildrens = new ArrayCollection();
>                               acChildrens = 
> ArrayCollection(menus[index].children);
>                               var obj: Object = new Object();
>                               obj.label = menus[index].label;
>                               obj.type = "Normal";
>                               obj.id = 466;
>                               obj.children = acChildrens;
>                               acMenusPai = new ArrayCollection();
>                               acMenusPai.addItem(obj);
>                               _menuTree.dataProvider = acMenusPai;
>                               callLater(expandFirstNode);
>                               _menuTree.width = 240;//reseta o tamanho do 
> menu tree
>                               
>                               /*
>                               * FUNÇÃO RECURSIVA PARA SETAR OS ÍCONES NO 
> TREE: VER COMO CONVERTER BYTEARRAY PARA BITMAPDATA EM TEMPO DE EXECUÇÃO
>                               */      
>                               
> setarIconesRecursivo(ArrayCollection(_menuTree.dataProvider));
>                       }
>                       
>                       private function 
> setarIconesRecursivo(dataProvider:ArrayCollection):void{
>                               for(var i:uint=0; i<dataProvider.length;i++){
>                                       if(dataProvider[i].icone != null){
>                                               loaderCustomizado = new 
> LoaderCustomizado();
>                                               //passo o parâmetro para o 
> loader
>                                               loaderCustomizado.paramCustom = 
> dataProvider[i];
>                                               
> loaderCustomizado.contentLoaderInfo.addEventListener(Event.COMPLETE, 
> getBitmapData);
>                                               
> loaderCustomizado.loadBytes(dataProvider[i].icone);
>                                       }
>                                       if(dataProvider[i].children != null){
>                                               
> setarIconesRecursivo(ArrayCollection(dataProvider[i].children));
>                                               //return;
>                                       }
>                               }
>                       }
>                       
>                       private function getBitmapData(evt:Event):void{
>                               //recupero a imagem e o parâmetro no evento
>                               var conteudo:* = evt.target.content;
>                               bitmapData = new 
> BitmapData(conteudo.width,conteudo.height,true,0x00000000);                   
>          
>                               var matrix:Matrix = new Matrix();
>                               bitmapData.draw(conteudo, 
> matrix,null,null,null,true);
>                               var icone:Class = 
> RuntimeBitmapAsset.getClass(bitmapData);
>                               
> _menuTree.setItemIcon(evt.target.loader.paramCustom, icone, null);
>                       }
>                       
>                       private function getBitmapDataAbas(evt:Event):void{
>                               //recupero a imagem e o parâmetro no evento
>                               var conteudo:* = evt.target.content;
>                               bitmapDataAbas = new 
> BitmapData(conteudo.width,conteudo.height,true,0x00000000);                   
>              
>                               var matrix:Matrix = new Matrix();
>                               bitmapDataAbas.draw(conteudo, 
> matrix,null,null,null,true);
>                               var icone:Class = 
> RuntimeBitmapAsset.getClass(bitmapDataAbas);
>                               evt.target.loader.paramCustom.icon = icone;
>                       }
>                       
>                       private function expandFirstNode():void{
>                               /*
>                               * EXPANDE O PRIMEIRO NÓ (PASTA PAI: NOME DO 
> MÓDULO) 
>                               */
>                               _menuTree.expandItem(acMenusPai[0], true, true);
>                       }
>                       
>                       private function 
> handlerSelectAba(evt:IndexChangedEvent):void{
>                               /*
>                               * REMONTA MENU TREE CONFORME ÍNDICE DA ABA 
>                               */
>                               montarMenuTree(evt.newIndex);
>                       }
>                       
>                       private function handlerSelectTree(evt:ListEvent):void{
>                               /*
>                               * VERIFICA SE É PASTA OU JANELA (PAI OU FILHO) 
>                               */                              
>                               var item:Object = 
> Tree(evt.currentTarget).selectedItem;
>                               if(_menuTree.dataDescriptor.isBranch(item)){
>                                       /*
>                                       * EXPANDE PASTA
>                                       */
>                                       _menuTree.expandItem(item, 
> !_menuTree.isItemOpen(item), true);
>                               }
>                               else{                                   
>                                       /*
>                                       * ABRE JANELA CORRESPONDENTE
>                                       */
>                                       
>                                       //é link: abre _blank
>                                       /* 
> if(evt.itemRenderer.data.interfaces.substr(0,4) == "http"){
>                                               var request:URLRequest = new 
> URLRequest();
>                                               request.url = 
> evt.itemRenderer.data.interfaces.toString();
>                                               
>                                               //nota fiscal eletrônica: 
> enviar usuário e senha
>                                               
> if(evt.itemRenderer.data.interfaces == "http://200.150.159.134:8080/";){
>                                                       var params:URLVariables 
> = new URLVariables();                
>                                                       params.login = 
> parentApplication.nomeLoginPVDA;
>                                                       params.senha = 
> parentApplication.senha;
>                                                       request.method = 
> URLRequestMethod.POST;
>                                                       request.data = params;  
>         
>                                               }                               
>                                 
>                                               
>                                               navigateToURL(request,"_blank");
>                                               return;
>                                       } */                                    
>                                       
>                                       var ClassReference:Class = 
> getDefinitionByName(evt.itemRenderer.data.interfaces) as Class;               
>        
>                                       var instance:Object = new 
> ClassReference();
>                                       
>                                       /*
>                                       * Verifica quem é o avô (ex: 
> FrmCadUsuarios->ClasseFrmCadUsuarios->ClasseMDIBasico) 
>                                       */
>                                       var SuperClassName:String = 
> getQualifiedSuperclassName(instance);
>                                       ClassReference = 
> getDefinitionByName(SuperClassName) as Class;
>                                       var classeSuperPai:String = 
> getQualifiedSuperclassName(ClassReference);
>                                       
>                                       /*
>                                       * Outros tipos de avôs devem ser 
> tratados com antecedência no switch 
>                                       */
>                                       switch(classeSuperPai){
>                                               case 
> "Interfaces.Global.Basico::ClasseMDIBasico":
>                                                       //inclui a janela
>                                                       
> MDIWindow(instance).left = 0;
>                                                       MDIWindow(instance).top 
> = 0;
>                                                       
> MDIWindow(instance).resizable = true;
>                                                       
> _cnvAreaTrabalho.windowManager.add(MDIWindow(instance)); 
>                                                       break;
>                                               case 
> "MDIWindow::ClasseCmpMDIWindow":
>                                                       //inclui a janela
>                                                       
> MDIWindow(instance).left = 0;
>                                                       MDIWindow(instance).top 
> = 0;
>                                                       
> MDIWindow(instance).resizable = true;
>                                                       
> _cnvAreaTrabalho.windowManager.add(MDIWindow(instance)); 
>                                                       break;
>                                               case 
> "mx.containers::TitleWindow":
>                                                       //inclui o popup
>                                                       //Observação 
> importante: ao incluir spark em módulos é obrigatório passar o parâmetro 
> moduleFactory.
>                                                       //neste exemplo, existe 
> um s:RadioButton no popup para envio de aviso de vencimento de duplicatas
>                                                       
> PopUpManager.addPopUp(TitleWindow(instance), parent, true, null, 
> moduleFactory);
>                                                       
> PopUpManager.centerPopUp(TitleWindow(instance));
>                                                       break;
>                                               default:
>                                                       
> MDIWindow(instance).left = 0;
>                                                       MDIWindow(instance).top 
> = 0;
>                                                       
> MDIWindow(instance).resizable = true;
>                                                       
> _cnvAreaTrabalho.windowManager.add(MDIWindow(instance)); 
>                                       }
>                               }
>                       }
>                       
> 
> Em sábado, 19 de outubro de 2013 21h53min47s UTC-3, Robinho de Morais 
> escreveu:
> Tenho esse tree e queria no Cadastro colocar um icone, no do Processos outro 
> icone e do Relatório outro icone...
> 
> como eu mudo..
> 
> 
> 
> 
> 
> 
> 
> -- 
> -- 
> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
> Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
> Para sair da lista, envie um email em branco para 
> flexdev-unsubscr...@googlegroups.com
> Mais opções estão disponíveis em http://groups.google.com/group/flexdev
> --- 
> Você está recebendo esta mensagem porque se inscreveu no grupo "flexdev" dos 
> Grupos do Google.
> Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie 
> um e-mail para flexdev+unsubscr...@googlegroups.com.
> Para obter mais opções, acesse https://groups.google.com/groups/opt_out.

-- 
-- 
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
Para sair da lista, envie um email em branco para 
flexdev-unsubscr...@googlegroups.com
Mais opções estão disponíveis em http://groups.google.com/group/flexdev
--- 
Você está recebendo esta mensagem porque se inscreveu no grupo "flexdev" dos 
Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um 
e-mail para flexdev+unsubscr...@googlegroups.com.
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.

Responder a