Mas no caso, pelo requisito q ele disse, o cliente é quem fará o upload da imagem, logo ela nao estará embedded no swf da app.
A idéia do SpriteAsset é boa, mas acho q vc nao precisa fazer cast para Class. Vc pode fazer uma leve imersao no compoente Tree para saber como o icon funciona, oq de fato é renderizado dentro do componente, extender a Tree e fazer o mesmo trabalho na mao. Ou, outra forma - talvez até mais rápida para isso - é trabalhar com TreeItemRenderer e dentro do renderer vc usa um Image q irá carregar o byteArray da sua imagem diretamente no source. Só nao tenho tempo para fazer isso, mas nao acho q seja nada complicado. (tempo == $) []'s Em 14 de outubro de 2011 13:22, irineu pereira <[email protected]>escreveu: > 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 > -- 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
