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
