<?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
[email protected] (MSN & Skype)
blogflex.brunobg.com
@brunogrohs
(21) 9913-2397
Em 24/10/2013, às 16:46, Leonardo Oliveira <[email protected]>
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 [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
> ---
> 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 [email protected].
> 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 [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
---
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 [email protected].
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.