Combobox fonctionne deux fois et pas trois (as3)

Résolu
cs_inaden Messages postés 618 Date d'inscription mercredi 4 avril 2007 Statut Membre Dernière intervention 27 août 2010 - 18 juin 2009 à 18:44
cs_inaden Messages postés 618 Date d'inscription mercredi 4 avril 2007 Statut Membre Dernière intervention 27 août 2010 - 19 juin 2009 à 09:21
Bonjour,
avnt d'exposer mon code  (qu'il me faudra épurer), je voudrais savoir si quelqu'un à une idée sur le pourquoi un combobox fonctionnerait, une fois, deux fois, mais pas trois.
J'ai peut-être fait une erreur de débutant (que je suis en as3) et qui est fréquente.
En fait, dans mon comboBox je fais apparaitre les noms et je load des anim comportant des plans. Je distribue aussi d'autres données, et peut-être le fais de mettre plein de données pose problème, mais j'ai surtout l'impression que cela est lié à l'animation que je loade. Peut-être que l'erreur viens du fait que le loade chaque animation dans le même loader ? Mais comme mon code est un peu chargé... l'erreur vient peut-être d'ailleurs... je cherche, mais j'ai l'impression que cela vient du Combo.
Donc si vous connaissez des erreurs fréquentes...
Merci d'avance pour votre aide et votre attention.

Tout vient à qui sait attendre

2 réponses

cs_inaden Messages postés 618 Date d'inscription mercredi 4 avril 2007 Statut Membre Dernière intervention 27 août 2010 2
19 juin 2009 à 09:21
Bon,
j'ai restructuré différemment mes fonction et j'utilise la fonction unload() sur mes vignette et ça marche... donc, merci de votre attention et je ne manquerais pas de revenir pour mon prochain problème.
Désolé pour le dérangemet.

Tout vient à qui sait attendre
3
cs_inaden Messages postés 618 Date d'inscription mercredi 4 avril 2007 Statut Membre Dernière intervention 27 août 2010 2
19 juin 2009 à 08:53
Bonjour,
en fait, ce n'est pas le combobox... ou du moins pas vraiment.
Lorsque je clique sur le combo je charge un texte, un plan et je créé des vignettes. J'ai créé une classe pour ces vignettes, mais si je ne fais rien, au changement suivant du combo, je me retrouve avec des superpositions d'images dans mes vignettes.
Donc, avant de créer mes seconde vignettes (ou troisième) je veux vider mes vignette de leur contenu et j'utilise la fonction :
public function reinitialisation():void{
            trace("   ===  >>  réinitialisation");
            texteInfo.effaceTxt();
            for each( var valeur:* in collecVignette){
                trace("les valeurs dans menuImage sont : "+valeur);
                menuImage.removeChild(valeur);
                menuImage.valeur=null;
            }
        }

où collecVignette est un vector dans lequel je met mes vignettes pour pouvoir les atteindre facilement. Et ça marche bien, les vignettes sont remplacé une première fois, mais la seconde fois j'ai le message d'erreur :

ArgumentError: Error #2025: Le DisplayObject indiqué doit être un enfant de l'appelant.
    at flash.display::DisplayObjectContainer/removeChild()
    at org::LoaderMc/reinitialisation()
    at org::LoaderMc/changeHandler()
    at flash.events::EventDispatcher/dispatchEventFunction()
    at flash.events::EventDispatcher/dispatchEvent()
    at fl.controls::ComboBox/onListChange()
    at flash.events::EventDispatcher/dispatchEventFunction()
    at flash.events::EventDispatcher/dispatchEvent()
    at fl.controls::SelectableList/handleCellRendererClick()

Ce que je ne comprends pas c'est pourquoi la première fois que je change, il efface bien les premières vignette et met les seconde, mais au second changement, il considère visiblement qu'il est impossible de recréer les vignettes.

Ma classe de vignette est la suivante :

public class Vignette extends Sprite {

        public function Vignette(adresse:URLRequest) {
            var loader:Loader = new Loader();
            loader.contentLoaderInfo.addEventListener(Event.INIT, initHandler);
            loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
            loader.contentLoaderInfo.addEventListener( ProgressEvent.PROGRESS, chargementImage);
            loader.load(adresse);
            addChild(loader);
        }

(je vous épargne les fonctions de load). Donc, dans l'absolu ce que j'aimerais faire c'est vider mon loader pour le remplir d'une autre image. Mais cela est-il possible ????

Si vous arrivez à me comprendre (je ne suis pas sur d'être très clair) et si vous avez une idée... Merci d'avance.

Tout vient à qui sait attendre
0
Rejoignez-nous