Suppression du clip parent

Résolu
projer Messages postés 112 Date d'inscription lundi 6 avril 2009 Statut Membre Dernière intervention 17 janvier 2015 - 8 nov. 2009 à 14:31
crackter Messages postés 401 Date d'inscription mercredi 12 novembre 2003 Statut Membre 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

6 réponses

Twinspirit Messages postés 58 Date d'inscription mercredi 21 mai 2008 Statut Membre Dernière intervention 7 mai 2012
8 nov. 2009 à 21:33
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
3
crackter Messages postés 401 Date d'inscription mercredi 12 novembre 2003 Statut Membre Dernière intervention 31 janvier 2010
8 nov. 2009 à 21:01
salut,

pourquoi ne pas avoir mis à la place de :

removeChild(DisplayObject(evt.currentTarget));

removeChild(mc_active);

?
0
crackter Messages postés 401 Date d'inscription mercredi 12 novembre 2003 Statut Membre Dernière intervention 31 janvier 2010
8 nov. 2009 à 21:49
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.
0
projer Messages postés 112 Date d'inscription lundi 6 avril 2009 Statut Membre Dernière intervention 17 janvier 2015
8 nov. 2009 à 22:09
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
0

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

Posez votre question
projer Messages postés 112 Date d'inscription lundi 6 avril 2009 Statut Membre Dernière intervention 17 janvier 2015
8 nov. 2009 à 22:18
@ 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
0
crackter Messages postés 401 Date d'inscription mercredi 12 novembre 2003 Statut Membre Dernière intervention 31 janvier 2010
8 nov. 2009 à 22:40
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...
0
Rejoignez-nous