Error #2025: The supplied DisplayObject must be a child of the caller -> HELP [Résolu]

Messages postés
5
Date d'inscription
jeudi 11 juin 2009
Statut
Membre
Dernière intervention
9 août 2009
- - Dernière réponse : facetus
Messages postés
5
Date d'inscription
jeudi 11 juin 2009
Statut
Membre
Dernière intervention
9 août 2009
- 9 août 2009 à 22:41
Bonjour,
Je suis novice et j'essaie depuis une semaine de résoudre une erreur de type:
Error #2025: The supplied DisplayObject must be a child of the caller.
at flash.display::DisplayObjectContainer/removeChild()


L'instance "li" lance un movieClip défini dans "d_li.swf"
Les instances "values_121" et "profile_301" sont des boutons qui renvoient à d'autres fragments sans le diaporama.
A l'affichage, tout est correct excepté ce message d'erreur intempestif lorsque je clique sur "profile" après "values" ou vice-versa...

Aidez-moi svp!!!
Merci d'avance!


li.addEventListener(MouseEvent.CLICK, li_90);
function li_90(event:MouseEvent):void
{
var li_loader:Loader=new Loader();
var li_swfURL:URLRequest=new URLRequest("d_li.swf");
li_loader.load(li_swfURL);
li_loader.y=300;
addChild(li_loader);
values_ins.addEventListener(MouseEvent.CLICK, values_121);
function values_121(event:MouseEvent):void
{
removeChild(li_loader);
values_ins.removeEventListener(MouseEvent.CLICK, values_121);
gotoAndPlay(121);
}
profile_ins.addEventListener(MouseEvent.CLICK, profile_301);
function profile_301(event:MouseEvent):void
{
removeChild(li_loader);
profile_ins.removeEventListener(MouseEvent.CLICK, profile_301);
gotoAndPlay(301);
}
}
Afficher la suite 

6 réponses

Meilleure réponse
Messages postés
5
Date d'inscription
jeudi 11 juin 2009
Statut
Membre
Dernière intervention
9 août 2009
3
Merci
Hello,

Après 3 semaines à suer, j'ai finalement trouvé la réponse:

li.addEventListener(MouseEvent.CLICK, li_120);
function li_120(event:MouseEvent):void {
li_loader = new Loader();
var li_swfURL:URLRequest=new URLRequest("d_li.swf");
li_loader.load(li_swfURL);
li_loader.y=300;
var cont:MovieClip=this;
addChild(li_loader);
values_ins.addEventListener(MouseEvent.CLICK, values_121);

function values_121(event:MouseEvent):void {
if (cont.contains(li_loader)) {
cont.removeChild(li_loader);
}
values_ins.removeEventListener(MouseEvent.CLICK, values_121);
gotoAndPlay(121);
}

profile_ins.addEventListener(MouseEvent.CLICK, profile_301);

function profile_301(event:MouseEvent):void {
if (cont.contains(li_loader)) {
cont.removeChild(li_loader);
}
profile_ins.removeEventListener(MouseEvent.CLICK, profile_301);
gotoAndPlay(301);
}
}

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 120 internautes nous ont dit merci ce mois-ci

Commenter la réponse de facetus
Messages postés
1393
Date d'inscription
dimanche 28 novembre 2004
Statut
Membre
Dernière intervention
2 août 2011
0
Merci
Hello,

Il faut que tu déclare a l'extérieur de ta fonction li_90 :

var li_loader:Loader;


ensuite dans ta fonction tu fais simplement :
li_loader = new Loader(); 


A+

-- Orange73 --

"L'homme n'est pas fait pour travailler, la preuve c'est que cela le fatigue" (Voltaire)
Commenter la réponse de Orange73
Messages postés
5
Date d'inscription
jeudi 11 juin 2009
Statut
Membre
Dernière intervention
9 août 2009
0
Merci
Salut,

Merci pour le conseil mais cela ne fait pas de différence.

var li_loader:Loader;
li.addEventListener(MouseEvent.CLICK, li_90);
function li_90(event:MouseEvent):void
{
var li_swfURL:URLRequest=new URLRequest("d_li.swf");
li_loader = new Loader();
li_loader.load(li_swfURL);
li_loader.y=300;
addChild(li_loader);
(...)

Une autre piste?
Besoin de plus d'info?

Merci d'avance
Commenter la réponse de facetus
Messages postés
1393
Date d'inscription
dimanche 28 novembre 2004
Statut
Membre
Dernière intervention
2 août 2011
0
Merci
Verifie l'existence de ton objet Loader avec de le supprimer :

if(li_loader != null)
removeChild(li_loader); 


A+

-- Orange73 --

"L'homme n'est pas fait pour travailler, la preuve c'est que cela le fatigue" (Voltaire)
Commenter la réponse de Orange73
Messages postés
5
Date d'inscription
jeudi 11 juin 2009
Statut
Membre
Dernière intervention
9 août 2009
0
Merci
Bonjour,

Merci pour la suite. Je viens de m'y remettre. J'ai donc essayé de faire ceci mais j'ai toujours la même erreur.
Faut-il que je mette ce script dans une classe rattaché à l'instance "li"?

var li_loader:Loader;
li.addEventListener(MouseEvent.CLICK, li_90);
function li_90(event:MouseEvent):void
{
li_loader = new Loader();
var li_swfURL:URLRequest=new URLRequest("d_li.swf");
li_loader.load(li_swfURL);
li_loader.y=300;
addChild(li_loader);
values_ins.addEventListener(MouseEvent.CLICK, values_121);
function values_121(event:MouseEvent):void
{
if(li_loader != null)
removeChild(li_loader);
values_ins.removeEventListener(MouseEvent.CLICK, values_121);
gotoAndPlay(121);
}
profile_ins.addEventListener(MouseEvent.CLICK, profile_301);
function profile_301(event:MouseEvent):void
{
if(li_loader != null)
removeChild(li_loader);
profile_ins.removeEventListener(MouseEvent.CLICK, profile_301);
gotoAndPlay(301);
}
}
Commenter la réponse de facetus
Messages postés
5
Date d'inscription
jeudi 11 juin 2009
Statut
Membre
Dernière intervention
9 août 2009
0
Merci
Hello,

Cela fait 3 semaines que je galère!
N'y a-t-il personne qui pourrait m'aider?

Merci d'avance
Commenter la réponse de facetus