Vérifier les coordonnées d'un clip

Vérifier les coordonnées d'un clip - Flash/ActionScript - Programmation

Marsh Posté le 22-08-2005 à 09:54:02    

Bonjour tout le monde!  
 
J'ai quelques difficultés pour une application en flash. Le but est de permettre à l'utilisateur de déplacer des clips sur l'animation  (en drag & drop). Jusque là ça marche sans problème. Ensuite après avoir cliqué sur le bouton "valider" je dois vérifier la position de ces éléments (c'est à dire leurs coordonnées). Selon les résultats, le clip sera repositionné :
 
btn_valider.onPress = function() {
 if (_root.mc_vesicules._x>250 && _root.mc_vesicules._x<300) {
  trace("ok" );
  _root.mc_vesicules._x = 275;
  _root.mc_vesicules._y = 45;
 } else {
  trace("pas ok" );
  _root.mc_vesicules._x = 0;
 }
};
 
Pour l'instant je prend en considération que les coordonnées x, mais ça déconne déjà. Je connais pas beaucoup l'actionscript et j'ai du mal à voir d'ou vient le problème. Actuellement le script considère que le clip est toujours mal placé.
 
Si quelqu'un peut m'aider  :hello: .

Reply

Marsh Posté le 22-08-2005 à 09:54:02   

Reply

Marsh Posté le 22-08-2005 à 10:09:11    

j'ai pas flash sous la main (mais dès que je l'aurai j'en serai sur) mais je pense pas que && soit bon (j'ai eu une tonne de problème avec les comparatif et incrémentation du genre += ....) enfin bref regarde dans l'aide elle te le diras mieux que moi :)

Reply

Marsh Posté le 22-08-2005 à 10:46:55    

J'ai essayer en mettant :
 
vesicules_ok = (_root.mc_vesicules._x>=250) && (_root.mc_vesicules._x<=300);
if (vesicules_ok) {
...
}
 
Mais ça change rien... C'est normal si trace(_root.mc_vesicules._x) me renvoit "undefined"?  :heink:

Reply

Marsh Posté le 22-08-2005 à 11:31:19    

lol non ça devrait te renvoyer un nombre
au fait c'est normal : trace(_root.mc_vesicules._x) ??
 
moi je le fais dans l'autre sens : trace(_root.vesicules_mc._x)
 
t'es sur que le && est bon ? vérifie :p

Reply

Marsh Posté le 22-08-2005 à 11:37:40    

Bon j'ai changé un peu le fonctionnement. La vérification des coordonnées se fait lors du drag & drop désormais et ça marche correctement :
 
on (press) {
 startDrag(this);
}
on (release) {
 stopDrag();
 trace(this._x);
 vesicules_x = (this._x>=250) && (this._x<=300);
 vesicules_y = (this._y>=30) && (this._y<=60);
 if (vesicules_x && vesicules_y) {
  trace("ok" );
  this._x = 275;
  this._y = 45;
  vesicules_placement=true;
 } else {
  trace(this._x);
  vesicules_placement=false;
 }
 trace(vesicules_placement);
}
 
 
Le truc c'est que j'essais de créer une variable "vesicules_placement" qui prend soit la valeur de true soit false, selon son placement. J'ai essayé d'utiliser cette variable sur le bouton "valider" mais il me met "undefined"... Alors que trace(vesicules_placement) dans le drag & drop m'affiche bien true ou false.

Reply

Marsh Posté le 22-08-2005 à 11:46:27    

en fait l'ideal ce serait d'appeler ta var _root.vesticules_placement et de réessayer du bouton valider

Reply

Marsh Posté le 22-08-2005 à 11:52:15    

vinc3 a écrit :

en fait l'ideal ce serait d'appeler ta var _root.vesticules_placement et de réessayer du bouton valider


 
 
 :jap:  
Merci bien, ça marche comme ça.

Reply

Marsh Posté le 22-08-2005 à 13:38:10    

Ok, c'est presque bon. Maintenant quand j'appuis sur le boutton valider les clips qui ne sont pas à leurs places doivent retrouver leurs positions initiales :
 
btn_valider.onPress = function() {
 trace(vesicules_placement);
 trace(noyau_placement);
 trace(golgi_placement);
 trace(reticulum_placement);
 if (vesicules_placement == false) {
  trace("..." );
  _root.vesicules_mc._x = 0;
  trace(_root.vesicules_mc._x);
 }
};
 
Le problème c'est que _root.vesicules_mc._x = 0 ne fonctionne toujours pas... Je peux pas repositionner un clip à partir de ma scène principale... Je vois pas d'ou vient le problème.

Reply

Marsh Posté le 22-08-2005 à 13:56:19    

es ce que ta condition est bonne ? il te trace bien les 3 petits points ?

Reply

Marsh Posté le 22-08-2005 à 14:00:57    

vinc3 a écrit :

es ce que ta condition est bonne ? il te trace bien les 3 petits points ?


 
 
Ba ouais il trace bien les 3 p'tits points, donc la condition est bonne mais par contre il veut pas repositionner mon clip.

Reply

Marsh Posté le 22-08-2005 à 14:00:57   

Reply

Marsh Posté le 22-08-2005 à 14:07:15    

et ton trace de la position de vesicules il te donne quoi ? (pas 0 quand même ....)

Reply

Marsh Posté le 22-08-2005 à 14:14:19    

vinc3 a écrit :

et ton trace de la position de vesicules il te donne quoi ? (pas 0 quand même ....)


 
undefined  :( .

Reply

Marsh Posté le 22-08-2005 à 14:18:07    

_root.onEnterframe=function(){
trace(_root.vesicules_mc._x);  
}
 
comme ça tu aura la position en temps réel si ça te dis undefined c'est qu'il doit y avoir une erreur de nom quelque part

Reply

Marsh Posté le 22-08-2005 à 14:26:21    

Ba ouais c'est toujours undefined, mais je vois pas d'ou vient l'erreur. Je viens de vérifier les noms et ils sont corrects.

Reply

Marsh Posté le 22-08-2005 à 14:40:02    

le nom d'instance de ta visicule c'est bien vesicules_mc et pas vesicules tout court :jap: ?

Reply

Marsh Posté le 22-08-2005 à 14:54:22    

Ben nan c'est bien  vesicules_mc...  :(

Reply

Marsh Posté le 22-08-2005 à 15:03:06    

esssay de passer par le mode automatique : quand tu tapes ton code tu as des icones au dessus : y'en a une avec une cible je crois ; met toi en mode absolu et regarde ce que ça te donne comme adresse

Reply

Marsh Posté le 22-08-2005 à 17:01:23    

vinc3 a écrit :

esssay de passer par le mode automatique : quand tu tapes ton code tu as des icones au dessus : y'en a une avec une cible je crois ; met toi en mode absolu et regarde ce que ça te donne comme adresse


 
Ok, c'est bon ça marche  :) ! Pourtant c'est exactement la même chose.... :
 
 if (vesicules_placement == false) {
  _root.vesicules_mc._x = 35.7;
  _root.vesicules_mc._y = 457.1;
 }
 
Flash c'est un peu bizarre des fois... En tout cas merci bcp pr ton aide  :jap: !


Message édité par electroger le 22-08-2005 à 17:01:47
Reply

Marsh Posté le 24-08-2005 à 15:09:41    

De rien de rien ; moi quand ça ne marche pas et que je suis persuadé que j'ai tout bon je refait tout ; parceque défois à changé les oms parci par la je n'ai pas l'impression que flash apprécie trop :jap: !

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed