HitTest et clips dynamiques

Résolu
mailys6 Messages postés 49 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 1 octobre 2005 - 14 avril 2005 à 16:39
mailys6 Messages postés 49 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 1 octobre 2005 - 15 avril 2005 à 12:11
Bonjour,
J'ai un petit problème de hitTest et de dragOver
J'ai des clips qui sont créés dynamiquement. Je ne connais pas à l'avance le nombre de clip que je vais avoir. Je crée autant de clips Lb+i que de clips Label+i. Lb+i est dragé et je voudrais que quand Lb+i passe au dessus de Label+i, un message s'afficher. J'ai donc mis au point le code suivant :

for(i = 1 ;i<=currentQuizQuestion.NbLabels;i++)
{
this['Lb'+i].onPress = function()
{
this.startDrag();
}
this['Lb'+i].onRelease= function()
{
this.stopDrag();
}
this['Lb'+i].onDragOver = function()
{
trace("dragover");
for(j=1;j<=currentQuizQuestion.NbLabels;j++)
{
if (this.hitTest(this['Label'+j]))
trace("touché")
}
}
}

Tous les Label+i ont une profondeur supérieure aux profondeurs des Lb+i. Pourtant Lb+i ne voit pas Label+i, par contre Lb1 voit Lb2, Lb3 ...
J'ai essayé avec un 2 clips fixes et là le dragover et le hitTest fonctionne parfaitement. J'ai bien vu l'exemple d'une source de Supo avec l'oiseau Ducon. Mais là je ne comprend pas pourquoi le dragOver ne se déclenche pas !

Merci d'avance pour votre aide,

Mailys

1 réponse

mailys6 Messages postés 49 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 1 octobre 2005
15 avril 2005 à 12:11
Réponse :
Je ne comprenais en fait pas à quoi correspondait le dragOver en flash, malgré sa définition dans l'aide de flash. En réalité dans mon cas, je n'avais pas besoin de dragOver mais de MouseMove.
Voici donc la correction de mon code pour ceux que ca intéresse :

for(i = 1 ;i<=currentQuizQuestion.NbLabels;i++)
{
this['Lb'+i].onPress = function(){ this.startDrag();}


this['Lb'+i].onRelease= function(){ this.stopDrag();}
}

this.onMouseMove = function()
{
for(i=1;i<=currentQuizQuestion.NbLabels;i++)
{
for(j=1;j<=currentQuizQuestion.NbLabels;j++)
{
if (this['Lb'+i].hitTest(this['Label'+j]))
trace("touché" + this['Label'+j])
}
}
}

L'affichage écrit "touché" ainsi que l'occurence du clip touché.

Mailys
3
Rejoignez-nous