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

Responder a