Salut, c'est toujours le même problème, il faut respecter le cycle de vie des composant et c'est un bon exemple ici. La classe ClassFactory prend en compte le type du composant ainsi que ces propriétés pour instancier au bon moment le composant. C'est la que l'on remarque que depuis les début de Flex 2, le noyau est construit sur le principe d'IOC et ça personne ne l'a remarqué ;)
On 11 oct, 11:33, vevedh <[email protected]> wrote: > 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 -~----------~----~----~----~------~----~------~--~---
