Mas funcionou ou nem asim? Se não, voce pode ter que declarar o skinClass de
cada componente que adicionar. Algo ssim:

public function addEl(frm:Form, el:Class, name:String):void{
 registerClassAlias(name,el);

 var clazzTI:Class = getClassByAlias(name);
 var instance:UIComponent = new clazzTI() as UIComponent;

* if ( instance is SkinnableComponent ) {
   SkinnableComponent(instance).setStyle( 'skinClass' , ???? );

 }*

 instance.addEventListener(FocusEvent.FOCUS_IN,component_focusInHandler);

 frm.addElement(instance as UIComponent);
}



Em 21 de julho de 2011 08:58, Haroldo Franzin <
[email protected]> escreveu:

> **
>
> Certo,
>     Mas dessa forma vou ter que Carregar "TODOS" os componentes, sendo que
> nem todos vou utilizar
>
>
>
> ---
>
>      *Haroldo Franzin
> **MSN*: [email protected]
>
>
>
>  On Thu, 21 Jul 2011 08:50:55 -0300, Eric Tonussi wrote:
>
> É normal dar erro de skin quando se cria objetos dinamicamente dessa forma.
> Tente declarar uma vez pelo menos cada objeto que você vai criar no
> declaration, dessa forma:
>
>
>
>
>
>
>
> Abraços
>
> Em 20 de julho de 2011 17:35, Haroldo Franzin <
> [email protected]> escreveu:
>
>>  Pessoal
>>
>>     Estou fazendo criação de componentes em Tempo de excução, porém na
>> hora que executo a função da esse erro no debug do navegador
>>
>> *Erro:*
>>
>> Error: Não é possível localizar capa para 
>> main.ApplicationSkin2._ApplicationSkin_Group1.contentGroup.FormComponents.FormSkin42.contentGroup.TextInput144.
>>  at spark.components.supportClasses::SkinnableComponent/attachSkin()
>>
>>
>>
>>  at spark.components.supportClasses::SkinnableComponent/validateSkinChange()
>>  at spark.components.supportClasses::SkinnableComponent/createChildren()
>>  at mx.core::UIComponent/initialize()
>>  at 
>> mx.core::UIComponent/http://www.adobe.com/2006/flex/mx/internal::childAdded()
>>
>>
>>
>>  at mx.core::UIComponent/addChildAt()
>>  at spark.components::Group/addDisplayObjectToDisplayList()
>>  at 
>> spark.components::Group/http://www.adobe.com/2006/flex/mx/internal::elementAdded()
>>
>>
>>
>>  at spark.components::Group/addElementAt()
>>  at spark.components::Group/addElement()
>>  at spark.components::SkinnableContainer/addElement()
>>  at main/addEl()
>>  at Function/http://adobe.com/AS3/2006/builtin::apply()
>>
>>
>>
>>  at r1.deval.rt::CallExpr/getAny()
>>  at r1.deval.rt::ExprStmt/exec()
>>  at r1.deval.rt::Block/exec()
>>  at r1.deval.rt::Block/run()
>>  at r1.deval.rt::Env$/run()
>>  at r1.deval::D$/eval()
>>  at main/eval()
>>  at main/btnCriar_clickHandler()
>>
>>
>>
>>  at main/__btnCriar_click()
>>
>>
>>
>> *Estou Seguindo o seguinte procedimento:*
>>
>> protected function btnCriar_clickHandler(event:MouseEvent):void
>> {
>>  if (lstComponentes.selectedIndex >= 0){
>>   var sb:StringBuffer = new StringBuffer();
>>   var nome:String = lstComponentes.selectedItem;
>>
>>      sb.append("import spark.components."+nome+"; ");
>>   sb.append("\n");
>>   sb.append("addEl(FormComponents, "+nome+",'spark.components."+nome+"');");
>>
>>   eval(sb.toString());
>>  }
>> }
>>
>> public function addEl(frm:Form, el:Class, name:String):void{
>>  registerClassAlias(name,el);
>>  var clazzTI:Class = getClassByAlias(name);
>>  var instance:UIComponent = new clazzTI() as UIComponent;
>>
>>
>>  instance.addEventListener(FocusEvent.FOCUS_IN,component_focusInHandler);
>>
>>  frm.addElement(instance as UIComponent);
>> }
>>
>>
>>
>> Biblioteca: r1.eval.d
>>
>>
>> --
>> 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
>
>
>
> --
> 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
>
>  --
> 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
>

-- 
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