[AS2] onMouseDown sur un Movieclip, mais c'est toute la scene qui réagit

Résolu
Signaler
Messages postés
58
Date d'inscription
mercredi 21 mai 2008
Statut
Membre
Dernière intervention
7 mai 2012
-
Messages postés
58
Date d'inscription
mercredi 21 mai 2008
Statut
Membre
Dernière intervention
7 mai 2012
-
Bonjour,

C'est étonnant, mais je suis un dev AS3 qui commence à peine à apprendre l'AS2 (ouaip, j'ai fait les choses à l'envers !). Je dois dire que je galère pas mal (AS3, c'est quand même plus pratique.)

Mon problème concerne l'évènement onMouseDown sur un Movieclip.
Voici le code :
stop();
//Je regarde tous les clips de la scene
for (var i in this) {
    if (typeof (this[i]) == "movieclip") 
{
    	trace("movie clip "+this[i]._name+" is at depth "+this[i].getDepth()+" and is a "+this[i].ptype);
if (this[i].ptype == "source")
                //Si ce clip est une source 
{
//Je place un evenement onMouseDown dessus
                        this[i].onMouseDown = function()
{
trace (this._name);
startLine(this);	
}
}
    }
}
//Mais cette méthode est appelée quelque soit l'endroit ou je clique...
function startLine(evtTarget:MovieClip)
{
trace ("mouseDown on source : "+evtTarget._name);
}


Le but est de détecter le "onMousedown" sur les clips portant la variable ptype == "source" et aucun autre, afin de tracer une ligne à partir de ce clip.

L'embêtant, c'est que quelque soit l'endroit ou je clique sur la scène, il détecte un clic sur ma source, un clip que j'ai nommé liner01, et qui porte le code suivant :
var ptype:String = "source";


Je ne comprend pas ce qui cloche.
Quelqu'un peut m'aider ?

TwFlash

1 réponse

Messages postés
58
Date d'inscription
mercredi 21 mai 2008
Statut
Membre
Dernière intervention
7 mai 2012

J'ai finalement réglé mon problème avec ce tuto :
http://www.senocular.com/flash/tutorials/buttoncapturing/

Le onMouseDown est toujours appliqué toutes les occurences capables de la recevoir. Il faut donc y rajouter un hitTest pour verifier que l'on est bien sur notre cible.

AS2, pffff...

TwFlash