Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1214 connectés 

  FORUM HardWare.fr
  Programmation
  Flash/ActionScript

  [AS2] problême HitTest

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[AS2] problême HitTest

n°2085555
master0
Posté le 28-06-2011 à 17:20:55  profilanswer
 

Bonjour à vous tous.
 
Je vous explique ma situation.
Cela fait deux jours que je m'arrache les cheveux sur un bug grossier de Flash, que je suspecte d'être un bug après les très nombreuses dérives et vérifications que j'ai fait dans mon code avant de venir chercher de l'aide.
 
Mon problème est simple :
J'ai une animation (le clip) faisant apparaître un bouton (contenu dans le clip).
Une fois l'animation terminée, je permet à un bloc (positionné sur le _root) de suivre la position de ma sourie A condition de toucher le Bouton. Lorsqu'il ne touche plus le bouton, je veux que le bloc qui suit la sourie disparaisse. Pour cela, je lui applique une position en dehors de l'affichage (c'est barbare mais bon). Le problème, c'est qu'il ne disparaît pas. Il comprend lorsque je lui demande de disparaître progressivement (avec une valeur qui incrémente par exemple) mais impossible pour lui de comprendre une valeur fixe. Si vous avez une meilleure solution, je suis preneur !
 
 
Définitions :
cl1 = le clip  
bt+i = les boutons contenus dans l'animation
 

Code :
  1. _root.onEnterFrame = function()
  2. {
  3. /*bulle description*/
  4. for (i = 1; i < 9; i++)
  5. {
  6.  if (cl1["bt" + i].hitTest(_root._xmouse, _root._ymouse) && _root.cl1._currentframe == 24)
  7.  {
  8.   fddes1._x = _root._xmouse + 20;
  9.   fddes1._y = _root._ymouse - 22;
  10.  }
  11.  else
  12.  {
  13.   fddes1._x = 10;
  14.   fddes1._y = 10;
  15.  }
  16. ----------------Le trace qui suit est bien reconnu -------------------------------
  17.  if (cl1["bt" + i].hitTest(_root._xmouse, _root._ymouse))
  18.  {
  19.   trace("jak" );
  20.  }
  21. }
  22. };


 
Merci d'avance pour vos réponses. Dans l'espoir de ne pas trop avoir piétiné la charte du forum.

mood
Publicité
Posté le 28-06-2011 à 17:20:55  profilanswer
 

n°2085993
abais
Posté le 30-06-2011 à 07:57:41  profilanswer
 

Pourquoi utiliser un hitTest() plutôt qu'un mouseOver ?
d'une boucle à l'autre du for, le if/else annule la position de fddes1 déclaré à la précédente boucle...
Il faudrait que tu rajoute dans ton 1er if(), un "break" pour stopper la boucle.


---------------
Le membre ci-contre n'est pas responsable du message ci-dessus.
n°2086128
master0
Posté le 30-06-2011 à 12:30:19  profilanswer
 

pars que le mousOver n'est pas reconnu :X  
 
Merci beaucoup pour le break. Je ne connaissais pas et en effet ça fonctionne ! Mais je ne comprend pas pourquoi il faut l'utiliser car ça ne réinitialise pas la position mais bien le For qui lui n'agit que sur le numéro du bouton  :??:  
Merci énormément en tout cas ! Je désespérais !

n°2086322
abais
Posté le 30-06-2011 à 22:42:34  profilanswer
 

Un peu de Logique :
Tu survoles bt7 (par exemple)...
Ta boucle va se faire... il ne se passera rien de 1 à 6, puis à la 7eme incrémentation, le hitTest va être positif, et donc fddes1 ira à la position de ta souris... Oui, mais la boucle ne s'arete pas là !, il y a encore i=8... Et la c'est le drame, ne survolant pas bt8, ton hitTest sera faux, et donc, fddes1 va allez, comme demandé, à x10;y10...
D'où la nécessité de stopper la boucle si le hitTest() est ok.
 
Par ailleur, le mouse_over en AS2, c'est l'evenement .onRollOver.


Message édité par abais le 30-06-2011 à 22:43:29

---------------
Le membre ci-contre n'est pas responsable du message ci-dessus.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Flash/ActionScript

  [AS2] problême HitTest

 

Sujets relatifs
Probleme Iframe et object.Problème de chargement application facebook !
Oracle 11g R2 est fou ? Problème avec ORGridBagLayout problème affichage conditonnel
probleme excel vba sommeProbléme avec la methode insert() de DataRepository C# de NetTiers C#
Probleme affichage champsGridBagLayout : problème d'espace
Problème de format de date[AS2] Problème fonctionnement fonction hitTest [RESOLU !]
Plus de sujets relatifs à : [AS2] problême HitTest


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR