Aide - Recherche - Membres - Calendrier
Version complète : • Multiple .PNG & Loader…
Centre de Formation Flash - Forums Adobe Flash > Adobe Flash > Programmation Actionscript > Actionscript 3
dimitri_c
Bonsoir -

Je tente en vain de donwloader dynamiquement une dizaine de .PNG, car le complilateur me retourne l'erreur suivante:
Citation
TypeError: Error #1006: value is not a function.
at untitled_fla::MainTimeline/pngLoaded()


Alors que lorsque je le fais à l'unité cela fonctionne.


Action Script


var xmlThumbLoadedCounter:uint=0;
var pngLdr:Loader = new Loader();
var pngURL:String;
var pngURLReq:URLRequest;

function loadPNGThumb_fct(which:int):void {
pngURL = xmlArray[which];
pngURLReq = new URLRequest(pngURL);
pngLdr.contentLoaderInfo.addEventListener(Event.COMPLETE, pngLoaded, false, 0, true);
pngLdr.addEventListener(IOErrorEvent.IO_ERROR, onIOError);
pngLdr.load(pngURLReq);
}
function onIOError(evt:IOErrorEvent) { trace("IOError: "+evt.text); }

function pngLoaded(evt:Event):void {
this["thumb"+xmlThumbLoadedCounter+"_sp"].addChild(evt.target.content);
xmlThumbLoadedCounter++;
}


Donc:

Action Script

this["thumb"+xmlThumbLoadedCounter+"_sp"].addChild(evt.target.content);


Ne fonctionne pas, non plus:

Action Script


var tmpName:String = "thumb"+xmlThumbLoadedCounter+"_sp";
tmpName.addChild(evt.target.content);


Alors que manuellement:

Action Script


thumb4_sp.addChild(evt.target.content); // '4' étant un exemple


Fonctionne… Je deviens fouuuuu!
Où est mon erreur, SVP?

tibibi
Salut,

Avec getChildByName ça passe pas mieux?

C'est ça qui plante je pense icon_smile.gif

Action Script

this["thumb"+xmlThumbLoadedCounter+"_sp"]


++icon_wink.gif
razael
Salut,

Si j' ai bien compris, thumb4_sp est un clip sur la scène ?
Quand tu fais :

Action Script

 var tmpName:String = "thumb"+xmlThumbLoadedCounter+"_sp"; 
tmpName.addChild(evt.target.content);


ça peut pas marcher puisque tmpName est de type String, c' est pas un DisplayObjectContainer !
Pour cibler un clip avec un String, il faut viser la propriété name de ce dernier :

Action Script

 this.getChildByName("thumb"+xmlThumbLoadedCounter+"_sp").addChild(evt.target.content); 

dimitri_c
Hello Razael & Tibibi-

Merci pour votre aide, je pense que cela résoud en partie mon problème (une fois que l'on a la solution cela semble si évident).
MAIS j'ai tout de même l'erreur suivante:

Citation
TypeError: Error #1009: Cannot access a property or method of a null object reference.
at untitled_fla::MainTimeline/pngLoaded()


Ouaissss… une de perdue (erreur), dix de retrouvées icon_confused.gif

Merci pour tout aide…




razael
Bon ...
fais un test sur tous les objets présent sur la scène :

Action Script

for(var i:uint = 0;i<this.numChildren;i++){
trace(this.getChildAt(i).name);
}


Je peux pas tester maintenant, mais essaye ça aussi :
Disons que tes conteneur sont des instances du symbole ConteneurMc

Action Script

for(var i:uint = 0;i<this.numChildren;i++){
if(this.getChildAt(i) is ConteneurMc)trace(this.getChidlAt(i).name)
}
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'informations, la mise en page et les images, veuillez cliquer ici.
Invision Power Board © 2001-2009 Invision Power Services, Inc.