Sguitch
Messages postés2Date d'inscriptiondimanche 29 août 2004StatutMembreDernière intervention28 octobre 2009
-
25 oct. 2009 à 10:16
Sguitch
Messages postés2Date d'inscriptiondimanche 29 août 2004StatutMembreDernière intervention28 octobre 2009
-
28 oct. 2009 à 10:29
Bonjour,
j'ai réalisé un composant simple "TestComposant" composé d'un clip (sert de bouton) associé à une classe "TestComposant".
Quand on clique sur le clip ça déclenche la fonction "ecritXML" qui via la fonction "trace" liste les éléments du fichier music.xml.
Le composant fonctionne quand je déclare la variable "fic" de la manière suivante ds fichier "TestComposant.as" sans utiliser la balise "inspectable".
public var fic:String ="music.xml";
par contre si j'utilise la balise "inspectable" ds fichier "TestComposant.as":
[Inspectable(defaultValue="music.xml")]
public var fic:String;
j'obtiens le défaut suivant :
TypeError: Error #2007: Le paramètre url ne doit pas être nul.
at flash.net::URLStream/load()
at flash.net::URLLoader/load()
at TestComposant()
at flash.display::Sprite/constructChildren()
at flash.display::Sprite()
at flash.display::MovieClip()
Je voulais pouvoir changer de fichier xml avec la fenetre "Inspecteur de composant" onglet "paramètres".
crackter
Messages postés401Date d'inscriptionmercredi 12 novembre 2003StatutMembreDernière intervention31 janvier 2010 25 oct. 2009 à 21:08
Salut,
en as3, "inspectable" est légèrement différent de l'as2, en effet, la valeur par défaut doit être initialisé dans le code également
[Inspectable(defaultValue="monfichier.xml")]
public var fic:String = "monfichier.xml";
Si maintenant tu ne veux pas de cette valeur par défaut, ET que tu comptes utiliser ta variable dans le constructeur, il faut savoir que les variables ne sont modifiés qu'au rendu, donc le constructeur n'aura pas accès aux variables rentrées depuis l'inspecteur des composants tout de suite. Pour palier à ça, on utilise inspectable sur les fonctions getter/setter.
Donc soit tu utilises les valeurs au premier rendu du composant (enterframe) soit tu utilises les setter.