Vérifier les coordonnées d'un clip - Flash/ActionScript - Programmation
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
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"?
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
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.
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
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 |
Merci bien, ça marche comme ça.
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.
Marsh Posté le 22-08-2005 à 13:56:19
es ce que ta condition est bonne ? il te trace bien les 3 petits points ?
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.
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 ....)
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 .
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
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.
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 ?
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
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 !
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 !
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 .