Error #2025: The supplied DisplayObject must be a child of the caller -> HELP

Résolu
facetus Messages postés 5 Date d'inscription jeudi 11 juin 2009 Statut Membre Dernière intervention 9 août 2009 - 31 juil. 2009 à 12:14
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);
}
}

6 réponses

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
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);
}
}
3
Orange73 Messages postés 1375 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 2 août 2011
31 juil. 2009 à 12:58
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)
0
facetus Messages postés 5 Date d'inscription jeudi 11 juin 2009 Statut Membre Dernière intervention 9 août 2009
31 juil. 2009 à 15:32
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
0
Orange73 Messages postés 1375 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 2 août 2011
31 juil. 2009 à 16:12
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)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
facetus Messages postés 5 Date d'inscription jeudi 11 juin 2009 Statut Membre Dernière intervention 9 août 2009
2 août 2009 à 15:26
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);
}
}
0
facetus Messages postés 5 Date d'inscription jeudi 11 juin 2009 Statut Membre Dernière intervention 9 août 2009
7 août 2009 à 07:41
Hello,

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

Merci d'avance
0
Rejoignez-nous