OK, alors ton erreur viens du code que tu as placé sur ta première image clé, à savoir :
- Code: Tout sélectionner
var monclip:URLRequest = new URLRequest("sousmenu.swf");
//Création du chargeur
var chargeur:Loader = new Loader()
//Chargement du contenu
chargeur.load(monclip);
//ajout à la liste d'affichage soit afficher dans l'ecran
this.c_interface.contenu.addChild(chargeur);
Et spécialement la dernière ligne :this.c_interface.contenu.addChild(chargeur);
Pourquoi ?
Parce que si tu regarde bien à l'image 1, ton clip c_interface n'existe pas encore pour flash puisqu'il n'est présent sur ta timeline qu'à partir de l'image 10 ! D'où ton erreur.
En gros si tu veux charger quelque chose dans le clip contenu, qui se trouve dans le clip c_interface, tu ne peux le faire qu'à partir de l'image clé 10, car avant, le clip c_interface et tout ce qu'il contient n'existe pas encore pour flash.
Rien à vori j'ai regarder le reste de ton code et je me permets de t"indiquer une optimisation sur ta fonctiojn affiche() :
Toi tu fait :
- Code: Tout sélectionner
var chargeur:Loader = new Loader();
function affiche (event:MouseEvent){
if (event.currentTarget==monmenu.btn1){
//--- On vide le conteneur ---
while(this.contenu.numChildren > 0) {
this.contenu.removeChildAt(0);
}
//url à atteindre
var maRequete:URLRequest = new URLRequest ("sousmenu.swf");
// chargement du contenu
chargeur.load (maRequete);
// ajout à la liste d'affichage
this.contenu.addChild(chargeur);
}
else if (event.currentTarget==monmenu.btn2){
//--- On vide le conteneur ---
while(this.contenu.numChildren > 0) {
this.contenu.removeChildAt(0);
}
// création du chargeur
//var chargeur:Loader = new Loader();
//url à atteindre
var maRequete2:URLRequest= new URLRequest ("sousmenu2.swf");
// chargement du contenu
chargeur.load (maRequete2);
// ajout à la liste d'affichage
this.contenu.addChild(chargeur);
}
else if (event.currentTarget==monmenu.btn3){
//--- On vide le conteneur ---
while(this.contenu.numChildren > 0) {
this.contenu.removeChildAt(0);
}
// création du chargeur
//var chargeur:Loader = new Loader();
//url à atteindre
var maRequete3:URLRequest= new URLRequest ("sousmenu3.swf");
// chargement du contenu
chargeur.load (maRequete3);
// ajout à la liste d'affichage
this.contenu.addChild(chargeur);
}
else if (event.currentTarget==monmenu.btn4){
//--- On vide le conteneur ---
while(this.contenu.numChildren > 0) {
this.contenu.removeChildAt(0);
}
// création du chargeur
//var chargeur:Loader = new Loader();
//url à atteindre
var maRequete4:URLRequest= new URLRequest ("sousmenu4.swf");
// chargement du contenu
chargeur.load (maRequete4);
// ajout à la liste d'affichage
this.contenu.addChild(chargeur);
}
}
Moi je te propose :
- Code: Tout sélectionner
function affiche(event:MouseEvent) {
//--- On vide le conteneur ----------------------------- UNE SEULE FOIS
while (contenu.numChildren > 0) {
contenu.removeChildAt(0);
}
//--------------------------------------------------------- ON NE DÉCLARE QU'UNE VARIABLE (et non 4)
var maRequete:URLRequest;
if (event.currentTarget==monmenu.btn1) {
//-------------------------------------------------- ON REDÉFINI LA VARIABLE EN FONCTION DU RÉSULTAT DU TEST
maRequete=new URLRequest("sousmenu.swf");
} else if (event.currentTarget==monmenu.btn2) {
maRequete=new URLRequest("sousmenu2.swf");
} else if (event.currentTarget==monmenu.btn3) {
//url à atteindre
maRequete=new URLRequest("sousmenu3.swf");
// ajout à la liste d'affichage
} else if (event.currentTarget==monmenu.btn4) {
//url à atteindre
maRequete=new URLRequest("sousmenu4.swf");
}// ajout à la liste d'affichage
//------------------------------------------------------- ON NE DÉFINI QU'UNE FOIS LE CHARGEUR
var chargeur:Loader = new Loader();
chargeur.load(maRequete);
//------------------------------------------------------- ON CHARGE
contenu.addChild(chargeur);
}
Ça n'a l'air de rien mais ce sont de bonnes habitudes à prendre pour optimiser son code (1 variable consommera moins de ressources CPU que 4).