Leonardo manda  so o nome  da  imagem pro  banco  e  quando  vc  reuperar
 vc  seta  o icone  que  estiver com o mesmo nome
o  icones  são  bem leve  mesmo.

Em 14 de outubro de 2011 11:37, Leonardo Oliveira <
[email protected]> escreveu:

> infelizmente não deu certo:
>
> var spriteAsset:SpriteAsset = new SpriteAsset();
> //aquí escreveria o bytearray no spriteAsset
> _menuTree.setItemIcon(objItem, Class(spriteAsset),
> Class(spriteAsset));
>
> Error #1034: Falha de coerção de tipo: não é possível converter
> mx.core::SpriteAsset@dba6501 em Class.
>
> sem o cast o método não aceita o SpriteAsset.
>
> tem um componente aquí (http://blog.benstucki.net/?p=42) que retorna a
> classe, daí seria possível usá-lo. porém o método getClass deste
> componente espera uma string com o source da imagem. no meu caso eu
> tenho um bytearray vindo do banco, então se for possível gostaria de
> ajuda pra quem sabe alterar este componente para aceitar bytearray ao
> invés da string com o source.
>
> outras sugestões são muito bem vindas.
>
>
> On 14 out, 11:26, Leonardo Oliveira <[email protected]>
> wrote:
> > cara, valeu demais pela dica. tava dando F5 aquí na tela esperando uma
> > resposta. vou agora mesmo testar e posto o resultado.
> > a propósito, não dá pra embedar a imagem porque é um menu
> > personalizado. o usuário vai escolher a imagem.
> > valeu Mario. vou testar.
> >
> > On 14 out, 11:22, Mário Júnior <[email protected]> wrote:
> >
> >
> >
> >
> >
> >
> >
> > > 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...
> > > )
> >
> > > 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 emhttp://
> groups.google.com/group/flexdev
> >
> > > --
> > > Mario Juniorhttp://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
>



-- 
*
Irineu Pereira
Analista Desenvolvedor JAVA, Adobe Flex na CINQ Technologies*

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