Bom, como icones sao arquivos pqnos em png (se bem feitos, tem menos de 1kb) eu embedaria TODOS os icones numa classe ImageUtils - por exemplo - e iria trocando-os dinamicamente de acordo com o data do node da tree. Isso é facil, rápido e nao possui muito custo - já q os icones sao pqnos mesmo.
Obviamente que vc não irá trabalhara com icones de 180x180 para usar numa árvore, certo? Por isso o tamanho dos arquivos seriam pqnos e eu (imho) nao vejo problema algum em "embedá-los". Agora, se vc quer realmente fazer isso dinamico, daí o buraco é "mais embaixo". Acontece que: Ao fazer um [Embed] Class de arquivo de imagem, esse icone nao será um "Class" propriamente dito, mas sim uma instancia de SpriteAsset. No momento da compilação, o mxmlc - seu compilador - leu o arquivo de imagem, pegou os bytes dele e jogou numa classe que extende de SpriteAsset antes de gerar o swf, logo sua var 'embedada' é uma instancia de SpriteAsset. Sabendo disso, vc pode - em runtime - tentar criar um SpriteAsset, escrever seu byteArray vindo do servidor nela e joga-la como um icon da Tree, já q o icon espera um IFlexDisplayObject (E, segundo os docs, SpriteAssets implementa IFlexDisplayObject: http://help.adobe.com/pt_BR/FlashPlatform/reference/actionscript/3/mx/core/SpriteAsset.html ) Na boa, eu nunca fiz isso na prática - como disse, eu preferiria embedar tudo - mas na teoria funcionaria sim. (Só resta saber se "na prática, a teoria é diferente" hehehe) Boa sorte. []'s Em 14 de outubro de 2011 10:39, Leonardo Oliveira < [email protected]> escreveu: > bom dia pessoal. > estou precisando setar ícones dinamicamente em um menu tree e para > isto recupero a imagem de cada ítem em forma de bytearray (blob do > bd). o problema é que não posso fazer um embed dinâmico (obviamente). > explicando melhor: > > [Embed("../../Estilos/images/icon_relatorio.png")] > private var icone:Class; > _menuTree.setItemIcon(node, icone, icone); > > isto funciona pois embedei no código a imagem diretamente de um > diretório. > > agora, a função setItemIcon espera os ícones como classe, mas eu tenho > bytearray, que não converte em classe (Class(meuByteArray) - não > funfa). então como eu poderia carregar isto dinamicamente? > > Obrigado. > > -- > 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 -- Mario Junior http://blog.mariojunior.com/ @mariojunior -- 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
