Lembre-se que por mais que você esteja tentando instanciar com base
numa string a classe tem que estar embutida no seu módulo. Uma maneira
de fazer isto é definindo uma variável do tipo que você quer
instanciar no módulo correspondente.

Ex:

No módulo que vc usa o getDefinitionByName ou no módulo que carrega
este módulo faça:

private var myClass:MyClass;


então use o getDefinitionByName:

var cls:Class = getDefinitionByName("MyClass") as Class;
var formItem:UIComponent = new cls();



[]'s
Beck Novaes


On Sep 9, 5:59 pm, "Guilherme Blanco" <[EMAIL PROTECTED]>
wrote:
> Olá pessoal,
>
> Estou tentando instanciar dinamicamente uma classe passando sua
> string, mas não estou obtendo sucesso. O script é executado dentro de
> um módulo.
>
> Eu importo todas as classes, conforme já procurei na net...
>
> import xxx.controls.filters.*;
>
> E tento instanciar:
>
> var cls:Class = getDefinitionByName(engine) as Class;
> var formItem:UIComponent = new cls();
>
> formItem.id = "optionItem";
> formItem.percentWidth = 100;
>
> this.formItemContainer.addChild(formItem);
>
> No caso, engine = "xxx.controls.filters.FieldStringType"
> Quando executo, obtenho esse erro:
>
> ReferenceError: Error #1065: Variable FieldStringType is not defined.
>         at global/flash.utils::getDefinitionByName()
>
> Alguém poderia me ajudar com isso?!?!!?
>
> --
> Guilherme Blanco - Web Developer
> CBC - Certified Bindows Consultant
> Cell Phone: +55 (16) 9166-6902
> MSN: [EMAIL PROTECTED]
> URL:http://blog.bisna.com
> Rio de Janeiro - RJ/Brazil
--~--~---------~--~----~------------~-------~--~----~
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