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

Responder a