Não é uma boa anternativa, nenhuma das duas.

Passar o nome completo do ícone é inviável, já que o transporte é muito
custoso (imagine um combo com 100 itens, cujo namespace + nome da classe
tenham 30 bytes, isso adiciona pelo menos 3000 bytes a mais no transporte).
E, como sabemos, qualquer migalha conta quando temos bottleneck =)

A outra solução é justamente o que o Flex faz... então criar uma classe
extra para fazer uma função que ele já faz por natureza me parece meio
reinventar a roda =\

Como os testes mostraram que realmente ele não duplica assets, creio que não
haja problemas em manter algumas variáveis dentro do escopo.

Outra coisa que estou pensando aqui... gerar estes arquivos de assets
dinamicamente, ou seja, ler toda a pasta de assets e montar uma classe com
todos eles embeded... usando Visual Studio e Tofino fica super fácil... se
fizer isso depois posto os resultados.

2010/1/14 RafaelViana <rfl.vi...@gmail.com>

> Olha teria que testar mas acho que é:
>
> NomeDaClasse.NomeDaVariavel - ex: Icones.Foo
>
> Agora dinamicamente teria que testar se não vai dar problema na
> compilacao por estar setando o nome da variavel em tempo de execução,
> teria que dar uma olhada em criar nome dinâmico da variável com o
> operador this[]
>
> Ou então mais fácil ainda em vez de pegar direto a referencia do
> ícone, faça um método nessa classe que receba uma string e retorne um
> class. (pode ser usada até com os icones que não são dinâmicos já que
> fica fácil de usar) ex:
>
> public static function selecionarIcone(s:String):Class {
>
> switch(s) {
>
> case "icone_teste" : return icone_teste;
> case "icone_2" : return icone_2;
> .....
>
> }
>
> <item label="Label" icon="{Icones.selecionarIcone("icone_teste")}"/>
>
> obs: essas string podem ser constantes dessa classe para evitar erros.
>
> Se testar nos responda o resultado
>
>
> On 14 jan, 17:42, Júlio César Ködel <jcko...@gmail.com> wrote:
> > Neste caso, como você converte um campo String, por exemplo, vindo do
> > servidor em um databind para o ícone?
> >
> > Ex.: tenho um combo que é preenchido por um XML server-side, contendo
> > elementos como <item label="Label" icon="Foo"/>
> >
> > Quando há uma variável "Foo" do tipo Class dentro da classe onde o combo
> se
> > encontra, ele automaticamente usa isso como ícone da opção do combo, mas
> se
> > não encontrar, levanta uma exceção.
> >
> > Colocar as imagens em uma classe separada funcionaria como? Alterar
> > icon="Foo" para icon="Namespace.Classe.Foo"?
> >
> > 2010/1/14 RafaelViana <rfl.vi...@gmail.com>
> >
> >
> >
> >
> >
> > > Eu pelo menos tenho uma classe IconesSistema onde todas as imagens
> > > estão Embed e estáticas assim FACILITAR na hora de obter acesso a
> > > elas.
> >
> > > No seu caso eu tiraria o bindable, pois ele é desnecessário nesse
> > > caso.
> >
> > > On 14 jan, 16:39, Mateus <mateusch...@gmail.com> wrote:
> > > > Muito Obrigado,
> >
> > > > fiz o seguinte teste, fiz o Embed de uma imagem de 1,24 mb, e o .SWF
> > > aumento
> > > > nesse tamanho, ai repeti o processo em diverso locais da aplicação e
> não
> > > > aumentou mais o tamanho do .SWF.
> >
> > > > e depois qundo removi, apenas diminuiu apenas quando removi todas as
> > > > referencias.
> >
> > > > 2010/1/14 Júlio César Ködel <jcko...@gmail.com>
> >
> > > > > Eu tive esta mesma preocupação há algum tempo e, pelo que li, o
> Flex
> > > não
> > > > > repete embeded assets, ou seja, não importa quantas vezes você faz
> um
> > > > > [Embed(imagem)], a Class sempre apontará para o mesmo recurso.
> >
> > > > > Mas não cheguei a testar se isso é verdade. Um teste que poderia
> ser
> > > feito
> > > > > é inserir uma imagem gigantesca (por exemplo, um papel de parede em
> > > BMP) e
> > > > > verificar o tamanho do SWF gerado, aí inserir a mesma imagem em
> outros
> > > > > locais várias vezes e verificar se há um aumento significativo no
> > > tamanho do
> > > > > arquivo gerado (ou utilizar um descompilador SWF para ver se o
> asset se
> > > > > repete)
> >
> > > > > Isso porque há certos casos que os assets devem estar acessíveis na
> > > mesma
> > > > > classe que o utilizam (ex.: iconField em um combo).
> >
> > > > > As imagens físicas em si eu geralmente deixo todas na mesma pasta
> (se o
> > > > > aplicativo acessa uma library, o que é sempre uma boa idéia,
> > > especialmente
> > > > > quando se usa módulos, eu deixo todos os assets nesta library e
> acesso
> > > os
> > > > > arquivos com caminhos relativos (ex.:
> > > ../../library/assets/images/icons/16))
> >
> > > > > 2010/1/14 Mateus <mateusch...@gmail.com>
> >
> > > > >>  Pessoal
> >
> > > > >> Estou desenvolvendo um ERP aqui, e a quandidade de imagens esta
> > > crecendo,
> > > > >> gostaria de saber de vocês qual é a melhor maneira de se utilizar
> > > imagens no
> > > > >> flex?
> > > > >> Estou utilizando da seguinte maneira
> > > > >>         Bindable]
> > > > >>         [Embed("imagens/favicon.png")]
> > > > >>             private var buttonTitle:Class;
> >
> > > > >> Estava pensado em criar uma super classe e fazer o Embed de todas
> as
> > > > >> imagens od sistema em um unico local, e uam unica vez, e depois
> apena
> > > > >> sutilizar essa classe, é a melhor maneira de fazer isso?
> > > > >> --
> > > > >> __________________________________
> > > > >> Att.
> > > > >> Mateus André Chies
> > > > >> Analista e Desenvolvedor de Sistemas
> > > > >> Bacharelando em SI - SETREM
> > > > >>http://mateuschies.blogspot.com
> >
> > > > >> "Viver é desenhar sem borracha." (Millôr Fernandes)
> >
> > > > >> --
> > > > >> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
> > > > >> Para enviar uma mensagem, envie um e-mail para
> > > flexdev@googlegroups.com
> > > > >> Para sair da lista, envie um email em branco para
> > > > >> flexdev-unsubscr...@googlegroups.com
> > > > >> Mais opções estão disponíveis emhttp://
> > > groups.google.com/group/flexdev
> >
> > > > > --
> > > > > []
> > > > > Júlio César Ködel G.
> >
> > > > > --
> > > > > Você recebeu esta mensagem porque está inscrito na lista "flexdev"
> > > > > Para enviar uma mensagem, envie um e-mail para
> > > flexdev@googlegroups.com
> > > > > Para sair da lista, envie um email em branco para
> > > > > flexdev-unsubscr...@googlegroups.com
> > > > > Mais opções estão disponíveis emhttp://
> groups.google.com/group/flexdev
> >
> > > > --
> > > > __________________________________
> > > > Att.
> > > > Mateus André Chies
> > > > Analista e Desenvolvedor de Sistemas
> > > > Bacharelando em SI - SETREMhttp://mateuschies.blogspot.com
> >
> > > > "Viver é desenhar sem borracha." (Millôr Fernandes)
> >
> > > --
> > > Você recebeu esta mensagem porque está inscrito na lista "flexdev"
> > > Para enviar uma mensagem, envie um e-mail para
> flexdev@googlegroups.com
> > > Para sair da lista, envie um email em branco para
> > > flexdev-unsubscr...@googlegroups.com
> > > Mais opções estão disponíveis emhttp://groups.google.com/group/flexdev
> >
> > --
> > []
> > Júlio César Ködel G.
>
> --
> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
> Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
> Para sair da lista, envie um email em branco para
> flexdev-unsubscr...@googlegroups.com
> Mais opções estão disponíveis em http://groups.google.com/group/flexdev
>



-- 
[]
Júlio César Ködel G.
-- 
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
Para sair da lista, envie um email em branco para 
flexdev-unsubscr...@googlegroups.com
Mais opções estão disponíveis em http://groups.google.com/group/flexdev

Responder a