Problème de parent

Skangell71 Messages postés 7 Date d'inscription mercredi 5 décembre 2007 Statut Membre Dernière intervention 7 juillet 2010 - 29 juin 2010 à 09:19
Twinspirit Messages postés 58 Date d'inscription mercredi 21 mai 2008 Statut Membre Dernière intervention 7 mai 2012 - 15 juil. 2010 à 19:27
Bonjour à tous,

je viens vous demander de l'aide pour un problème que je n'arrive pas à comprendre. J'ai une carte interactive sur laquelle les utilisateurs peuvent interagir.

Quand l'utilisateur clique sur une ville, un clip apparait avec les informations générales la concernant. Si on clique sur le lien "En savoir +", une autre fenêtre s'ouvre pour plus d'informations(la première est killée).

C'est sur ce clip que j'ai un problème, car j'ai 3 onglets pour les différentes informations. J'ai fait un clip pour chaque page et quand je clique sur l'un des onglet, j'aimerai que les autres soient détruit et se reconstruisent lorsque que je reclique dessus.

Je ne sais pas si j'ai été bien claire, voici un bout de mon code pour la compréhension :

function ouverture_detail( e:Event){

// Suppression du clip fiche_commune de la scène
        this.removeChild(fiche_commune);

        // Ajout du clip sur la scène
addChild(fiche_detaillee);

/* Mise en forme du texte */
         [...]


        /*// Affichage du haut des onglets //*/
var identite:Identite = new Identite();
identite.x=215;
identite.y=35;
fiche_detaillee.addChild (identite);

// Affichage PATRIMOINE
var patrimoine:Patrimoine = new Patrimoine();
patrimoine.x=300;
patrimoine.y=27;
fiche_detaillee.addChild (patrimoine);

// Affichage REALISATION
var realisation:Realisation = new Realisation();
realisation.x=410;
realisation.y=22;
fiche_detaillee.addChild (realisation);
        /*////////////*/

        
        // On ajoute l'onglet identité directement à l'ouverture de la fiche détaillée
onglet_identite.x=205;
onglet_identite.y=30;
fiche_detaillee.addChild (onglet_identite);

// Appel des fonctions quand on clique sur les clips identité, réalisation et patrimoine
realisation.addEventListener( MouseEvent.MOUSE_DOWN, afficher_realisation);
patrimoine.addEventListener( MouseEvent.MOUSE_DOWN, afficher_patrimoine);
identite.addEventListener( MouseEvent.MOUSE_DOWN, afficher_identite);
}

function afficher_realisation( e:Event)
{

fiche_detaillee.removeChild(onglet_identite);
fiche_detaillee.removeChild(onglet_patrimoine);


onglet_realisation.x=206;
onglet_realisation.y=24;
fiche_detaillee.addChild (onglet_realisation);
}

function afficher_patrimoine( e:Event)
{
fiche_detaillee.removeChild(onglet_identite);
fiche_detaillee.removeChild(onglet_realisation);

onglet_patrimoine.x=206;
onglet_patrimoine.y=24;
fiche_detaillee.addChild (onglet_patrimoine);
}

function afficher_identite( e:Event)
{
fiche_detaillee.removeChild(onglet_realisation);
fiche_detaillee.removeChild(onglet_patrimoine);


onglet_identite.x=206;
onglet_identite.y=24;
fiche_detaillee.addChild (onglet_identite);
}


J'ai une erreur sur les removeChild :
ArgumentError: Error #2025: Le DisplayObject indiqué doit être un enfant de l'appelant.
at flash.display::DisplayObjectContainer/removeChild()
at Carte_SIGERLy_fla::MainTimeline/afficher_patrimoine()


Je ne comprend pas pourquoi j'ai cette erreur ... Avez-vous une idée ?!?
Merci d'avance !
A voir également:

2 réponses

docodoc Messages postés 1671 Date d'inscription dimanche 6 mars 2005 Statut Membre Dernière intervention 21 juillet 2013 4
29 juin 2010 à 11:50
Re:
je ne suis pas specialiste en AS3, je developpe en AS2 mais .... je me demande si ca n'est pas un probleme de ciblage
regardes bien ou est place ton code par rapport au clip que tu veux supprimer
vu de loin d'apres tes explcations le clip a supprimer est lui-meme place dans un clip
donc le ciblage devrait donner
leClip.leClipaSupprimer --> tonAction
tout ca sous toutes reserves hein !
a+
0
Twinspirit Messages postés 58 Date d'inscription mercredi 21 mai 2008 Statut Membre Dernière intervention 7 mai 2012
15 juil. 2010 à 19:27
Salut !

Avant d'enlever un clip, je pense qu'il faut que tu sois certaine qu'il existe, avec un test du genre :

if (fiche_detaillee.contains(onglet_identite))
{
    // s'il existe, tu peux donc l'enlever
    fiche_detaillee.removeChild(onglet_identite);
}


Si tu regardes bien, le code ne s'arrête pas sur
fiche_detaillee.removeChild(onglet_identite);


pourtant placé avant dans le code, car le clip est déjà ajouté par défaut, par contre il s'arrête à
fiche_detaillee.removeChild(onglet_patrimoine);


car le clip n'existe pas à ce moment là.

TwFlash - Développeur ActionScript3 freelance.
Mon blog : Twin Flash Blog
Mon site : TwFlash
0
Rejoignez-nous