Utilisation de la balise inspectable

Résolu
Sguitch Messages postés 2 Date d'inscription dimanche 29 août 2004 Statut Membre Dernière intervention 28 octobre 2009 - 25 oct. 2009 à 10:16
Sguitch Messages postés 2 Date d'inscription dimanche 29 août 2004 Statut Membre Dernière intervention 28 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".


Merci de votre aide

2 réponses

crackter Messages postés 401 Date d'inscription mercredi 12 novembre 2003 Statut Membre Dernière intervention 31 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.
3
Sguitch Messages postés 2 Date d'inscription dimanche 29 août 2004 Statut Membre Dernière intervention 28 octobre 2009
28 oct. 2009 à 10:29
Bonjour,
j'ai suivi tes conseils et j'ai trouver un tutoriel sur l'utilisation des setter lien vers tutoriel
ça fonctionne !

Merci
0
Rejoignez-nous