Suppression du clip parent [Résolu]

Messages postés
112
Date d'inscription
lundi 6 avril 2009
Dernière intervention
17 janvier 2015
- 8 nov. 2009 à 14:31 - Dernière réponse :
Messages postés
401
Date d'inscription
mercredi 12 novembre 2003
Dernière intervention
31 janvier 2010
- 8 nov. 2009 à 22:40
Bonjour,

j'ai donc ce soucis :

A chaque clic sur un bouton, j'importe sur la scène un MC (mc_croix) qui contiend un autre MC (mc_fermer) qui est en fait un bouton pour supprimer ce clip.

Le soucis est que lorsque je clic sur la croix avec, il me met un message d'erreur :

ArgumentError: Error #2025: Le DisplayObject indiqué doit être un enfant de l'appelant.
at flash.display::DisplayObjectContainer/removeChild()
at photo_fla::MainTimeline/fermerSelection()

mon code :

var mc_active:croix=new croix();
addChild(mc_active);
mc_active.mc_fermer.addEventListener(MouseEvent.CLICK,fermerSelection);

function fermerSelection(evt:MouseEvent){
removeChild(DisplayObject(evt.currentTarget))
}

Comment arriver lorsque je clique sur mc_fermer, qu'il me supprime son clip parent?


--------------------------------------------------------

http://www.projer.fr - dev web
http://www.lysdesign.fr - DA print / web - Illustratrice
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
Messages postés
59
Date d'inscription
mercredi 21 mai 2008
Dernière intervention
7 mai 2012
- 8 nov. 2009 à 21:33
3
Merci
Hum... C'est difficile a dire, mais il n'y a pas confusion entre evt.currentTarget (objet sur lequel on ecoute) et evt.target (objet sur lequel on clique ?)

Mais dans tout les cas, si l'objet a retirer n'est pas directement sur la scene, il faut indiquer son parent et appeler la methode removeChild sur lui, et donner l'enfant en paramètre :

mc_active.removeChild(DisplayObject(evt.currentTarget));

En référence faible cela ferait :

DisplayObject(evt.currentTarget.parent).removeChild(DisplayObject(evt.currentTarget))

Mais c'est bof bof. Je suis certain qu'en réorganisant ton clip, cela pourrait être plus simple.

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

Merci Twinspirit 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 86 internautes ce mois-ci

Commenter la réponse de Twinspirit
Messages postés
401
Date d'inscription
mercredi 12 novembre 2003
Dernière intervention
31 janvier 2010
- 8 nov. 2009 à 21:01
0
Merci
salut,

pourquoi ne pas avoir mis à la place de :

removeChild(DisplayObject(evt.currentTarget));

removeChild(mc_active);

?
Commenter la réponse de crackter
Messages postés
401
Date d'inscription
mercredi 12 novembre 2003
Dernière intervention
31 janvier 2010
- 8 nov. 2009 à 21:49
0
Merci
je n'ai pas compris l'intérêt de partir sur un evt.currentTarget.parent.removeChild au lieu de faire un simple this.removeChild ou encore this.monclip.removeChild.
Commenter la réponse de crackter
Messages postés
112
Date d'inscription
lundi 6 avril 2009
Dernière intervention
17 janvier 2015
- 8 nov. 2009 à 22:09
0
Merci
DisplayObject(evt.currentTarget.parent) a fonctionné :)

Je me galère vraiment en fait. Ce qui me bloque énormément, c'est le fait de ne pas pouvoir appeler un clip directement.

Exemple : sur le site que je développe, j'ai un menu, quand je clique sur un des éléments du menu, il change de couleur pour indiquer qu'il a été activé et alors dans un tableau à droite, le nom du bouton activé est indiqué avec une croix à côté.

Quand clique sur la croix, elle disparait et le texte avec et bien sur, il faut que dans le menu, le bouton redevienne normal, et vice versa. Et après, les éléments dans le tableau de droite doivent se recaler pour ne pas laisser un trou.

Le truc c'est que j'arrive pas à gérer les interactions entre les clips, vu qu'apparemment on ne peut pas les appeler directement comme en as2...

Un capture d'écran pour illustrer :



--------------------------------------------------------

http://www.projer.fr - dev web
http://www.lysdesign.fr - DA print / web - Illustratrice
Commenter la réponse de projer
Messages postés
112
Date d'inscription
lundi 6 avril 2009
Dernière intervention
17 janvier 2015
- 8 nov. 2009 à 22:18
0
Merci
@ cracker :
Le soucis c'est que monClip est un clip dupliqué, donc je ne peux pas l'appeler monClip.

Tes 2 solutions me donnent des messages d'erreur lors de la compilation.

--------------------------------------------------------

http://www.projer.fr - dev web
http://www.lysdesign.fr - DA print / web - Illustratrice
Commenter la réponse de projer
Messages postés
401
Date d'inscription
mercredi 12 novembre 2003
Dernière intervention
31 janvier 2010
- 8 nov. 2009 à 22:40
0
Merci
oui donc ton problème était mal exposé car tu parles de mc avec des noms fixés.

et forcément que mes codes donnent des messages d'erreurs, ce sont seulement des pistes qu'il est nécessaire d'adapter.

En fait pour faire simple, la première erreur que tu as vient du fait que tu essayes de faire :

removeChild(DisplayObject(evt.currentTarget));

qui correspond encore à

this.removeChild(DisplayObject(evt.currentTarget));

hors DisplayObject(evt.currentTarget) n'est pas un enfant de this, tout simplement...
Commenter la réponse de crackter

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.