Réponse d'un bouton sur l'animation

cs_grenadin Messages postés 8 Date d'inscription samedi 2 janvier 2010 Statut Membre Dernière intervention 5 mars 2010 - 14 janv. 2010 à 18:52
cs_grenadin Messages postés 8 Date d'inscription samedi 2 janvier 2010 Statut Membre Dernière intervention 5 mars 2010 - 15 janv. 2010 à 20:22
Bonsoir
Je découvre flash, depuis quelques semaines. J'ai réalisé une animation en codant en actionscript 2 sur la première image. Par le code j'ai crée un pendule qui oscille, avec 5 vecteurs qui se déplacent avec le pendule. Les vecteurs sont des clips dynamiques crées par le code. Voici un bout de code :

..............;
onEnterFrame = function () {
if (mvt == true) {
teta = teta_zero*Math.cos(o*t);
pendule._rotation = teta;
..........
this.createEmptyMovieClip('poids',1);
......
poids._visible = false;
................;
}
Quand l'anim fonctionne, le vecteur poids est invisible. J'ai crée un 1° bouton qui doit rendre le vecteur visible en relachant ce bouton :

bouton1.onRelease = function(){
poids._visible = true;
}

Mon problème vient du fait que le vecteur poids apparait sur l'anim, JUSTE qu'en je relache le bouton. Alors que moi je voudrais qu'il reste sur l'anim, accroché au pendule,tant que je ne lui demande pas de redisparaître.

J'ai crée un 2° bouton qui stoppe l'anim. Quand l'anim est stoppé, mon premier bouton fait apparaitre sans problème le vecteur poids. Mais dés que je relance l'anim, il disparait à nouveau.

J'espère avoir été clair. Quelqu'un pourrait-il m'aider?
Merci d'avance

2 réponses

Orange73 Messages postés 1375 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 2 août 2011
14 janv. 2010 à 19:03
Hello,

normal car tu met
poids._visible = false; 

dans ton onEnterFrame ...
Du coup le clip est toujours caché....

Il faudrait placer
poids._visible = false; 

en dehors du onEnterFrame pour l'etat initial du clip
puis appliquer cela a ton bouton

bouton1.onRelease = function(){
     poids._visible = !poids._visible;
} 


A+

-- Orange73 --

"L'homme n'est pas fait pour travailler, la preuve c'est que cela le fatigue" (Voltaire)
0
cs_grenadin Messages postés 8 Date d'inscription samedi 2 janvier 2010 Statut Membre Dernière intervention 5 mars 2010
15 janv. 2010 à 20:22
Merci pour la réponse, mais ça ne marche pas avec ce que tu m'as proposé.
Mon explication n'est peut être pas claire.
Je vais donner le script que j'ai codé pour mon pendule simple qui fonctionne.Mon problème vient du fait que je ne peux pas rendre invisible le vecteur lors de l'oscillation.
Mon script est le suivant :

teta_zero = 50;
m = 0.12;
g = 9.81;
l = 220;
t = 0;
Dt = 0.1;
o = Math.sqrt(g/l);
var mvt:Boolean = false;

onEnterFrame = function () {
if (mvt == true) {
teta = teta_zero*Math.cos(o*t);
pendule._rotation = teta;
t = t+Dt;
Dteta = teta_zero*(Math.cos(o*t+Dt)-Math.cos(o*t));
tetarad = teta*Math.PI/180;
teta_zerorad = teta_zero*Math.PI/180;
bille._x = pendule._x-l*Math.sin(tetarad);
bille._y = pendule._y+l*Math.cos(tetarad);

te = m*g*(3*Math.cos(tetarad)-2*Math.cos(teta_zerorad));
ze = Math.sqrt(Math.cos(tetarad)-Math.cos(teta_zerorad));
ve = Math.sqrt(2*g/l);


this.createEmptyMovieClip('poids',1);
poids.lineStyle(4,0xFF0000,100);
poids.moveTo(bille._x,bille._y);
poids.lineTo(bille._x,bille._y+50*m*g);
poids.lineTo(bille._x-7*Math.cos(10*Math.PI/180),bille._y+50*m*g-7*Math.sin(100*Math.PI/180));
poids.lineTo(bille._x,bille._y+50*m*g);
poids.lineTo(bille._x+7*Math.cos(10*Math.PI/180),bille._y+50*m*g-7*Math.sin(100*Math.PI/180));

poids._visible = false;




}

}

Dans un bouton qui doit faire apparaitre le vecteur poids, j'ai mis le code
on(release){
poid1._visible =false;
f1="P";
_root.poids._visible = true;
}
dans un autre bouton sous celui-ci dans un calque j'ai mis :
on(release){
f1="";
poid1._visible = true;

_root.poids._visible = false;
}
voila et ça ne marche pas.
Si quelqu'un a la solution, merci par avance.
0
Rejoignez-nous