Voilà, je pense que la solution à ton problème se trouve ici:
http://cookbooks.adobe.com/index.cfm?event=showdetails&postId=15487


On 10 oct, 06:03, "[email protected]" <[email protected]> wrote:
> Bonjour,
>
> j'ai récemment téléchargé la nouvelle beta de flash builder et j'ai un
> soucis avec getDefinitionByName.
> Pour le sdk 3 j'ai un ensemble de classes qui charge dynamiquement les
> composants graphiques
> à partir d'un fichier de configuration et un swf pour avoir accès aux
> définitions de classes des composants utilisés.
>
> Seulement voilà, si j'adapte bêtement le code en changeant addChild
> par addElement :
>
>           var classe:Class=getDefinitionByName
> ("spark.components.Button") as Class;
>           var composant:*=new classe();
>           this.addElement(composant);
>
> mais j'obtiens ça :
>
>           Error: Apparence
> deTest.ApplicationSkin2._ApplicationSkin_Group1.contentGroup.Button6
> introuvable.
>
> En effet, composant.skin est null alors que (new Button()).skin !=
> null
> Il semble donc qu'aucun skin ne soit attribué par défaut par cette
> méthode contrairement à une instanciation classique.
>
> Du coup j'ai rajouté le skin :
>
>           var skinClass:Class=getDefinitionByName
> ("spark.skins.spark.ButtonSkin") as Class;
>           var skin:*=new skinClass();
>           skin.addElement(composant);
>           this.addElement(composant);
>
> Et là ça marche !
>
> Mais il reste un soucis, si j'applique la même méthode avec un Panel,
> il n'y a aucune exception de levée mais le Panel n'apparait pas et son
> skin reste null. Il est tout de même rajouter à la scène, puisqu'on
> peut lui ajouter un Button qui lui sera visible...
>
> Tout se règle évidemment, si je place un new Panel() quelque part dans
> le code, mais je perds tout l'intérêt de mon chargement dynamique.
>
> Merci d'avance
--~--~---------~--~----~------------~-------~--~----~
Vous avez reçu ce message, car vous êtes abonné au groupe Groupe "FCNG" de 
Google Groupes.
 Pour transmettre des messages à ce groupe, envoyez un e-mail à 
l'adresse [email protected]
 Pour résilier votre abonnement à ce groupe, envoyez un e-mail à 
l'adresse [email protected]
 Pour afficher d'autres options, visitez ce groupe à l'adresse 
http://groups.google.com/group/fcng?hl=fr
-~----------~----~----~----~------~----~------~--~---

Répondre à