Deplacement et zoom lors d'un clique

Résolu
rewerner Messages postés 6 Date d'inscription jeudi 16 novembre 2000 Statut Membre Dernière intervention 23 juin 2005 - 21 juin 2005 à 00:10
rewerner Messages postés 6 Date d'inscription jeudi 16 novembre 2000 Statut Membre Dernière intervention 23 juin 2005 - 23 juin 2005 à 09:29
Je vais essayer d'etre clair..

J'ai une clip sur lequelle je me déplace a l'aire de boutons qui
indiquent les coordonnées où placer "la caméra". tout ca grace à ces
quelques lignes :



Sur mon clip à déplacer



onClipEvent (load) {

_root.targetx = 210;

_root.targety = 4;

speed = 20;

_root.onEnterFrame = function() {

_x += (_root.targetx-_x)/speed;

_y += (_root.targety-_y)/speed;

};

}

onClipEvent (enterFrame) {

if (_y targety && _x targetx) {

delete this.onEnterFrame;

}

}



et sur mes boutons ce code que j'ai pris ca sur un tutorial ! Bon le
résultat marche, je peut déplacer mon clip jsute en créant un bouton
avec mes coordonées du genre :

on (release) {

_root.targetx = 200;

_root.targety = 150;

}



Maintenan je vousdrais avoir en même temps que mon déplacement mon parapmère de zoom sur mon ce clip.



J'ai donc essayer d'utiliser les commande _xscale et _yscale seulement
je n'arrive pas a avoir de transition fluide. Mon zoom est instantané
(ce qui est logique).



Ce que j'aurais espéré c'est arriver à un mettre sur mon bouton quelque chose du genre

on (release) {


_root.targetx = 200;


_root.targety = 150;

_root._xscale = 200;



_root._yscale = 200;


}



et avoir mon déplasement plus mon zoom qui s'effectuent
progressivement... Seulement là j'ai beau chercher j'y arrive
pas....

Vous parler dans différent sujet du forom de SetInterval mais je sais pas comment l'utiliser...



J'espèrais avoir votre aide !

je suis pas vraiment fort pour ce genre de chose je sais pas bien dans quoi je me suis lancé ici...



J'attends avec impatience votre aide!!



A+ rewerner

9 réponses

rewerner Messages postés 6 Date d'inscription jeudi 16 novembre 2000 Statut Membre Dernière intervention 23 juin 2005
23 juin 2005 à 09:29
ca marche merci bcp pour ton aide !
3
John_Doe_88 Messages postés 606 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 13 décembre 2006
21 juin 2005 à 09:35
I = setInterval(fonction, 1000); //appelle la fonction a intervalle regulier (en ms : 1000 -> 1s)



donc il faut que tu fasse ca. Quand tu veu stopper l'execution de ta fonction tu fais un clearInterval(I);
0
rewerner Messages postés 6 Date d'inscription jeudi 16 novembre 2000 Statut Membre Dernière intervention 23 juin 2005
21 juin 2005 à 10:17
Hum, ok, je vais essayer ca merci bcp !! ^^



rewerner
0
rewerner Messages postés 6 Date d'inscription jeudi 16 novembre 2000 Statut Membre Dernière intervention 23 juin 2005
21 juin 2005 à 19:31
J'ai encore un
problème, maintenant mon zoom et mon dézoome fonctionnent progressivement, mais
lorsque je décide de zoomer puis ensuite de dézoomer j'ai deux fonction qui
rentre en concurrence..



J'en ai une qui fais rapetisser mon _xscale et l'autre qui le fait
grossir en même temps. Donc si je fait zommer à 250% puis dézoomer pour
retourner à 100% mon
clip se stabilise à qqchose comme 180% entre les deux (c'est pas le
chiffre
exacte).



En ce moment j'ai un clearInterval(I); qui "pause" ma fonction si par
exemple
_xscale passe sous les 100, mais je pense que dès que le paramètre
repasse au dessus la fonction se relance alors que je voudrais qu'elle
ne soit plus active. Ce que je voudrais c'est une commande qui disent
arrêter
la fonction ou clear fonction. Quelque chose de définitif.



J'espère avoir été clair encore une fois....



Merci bcp,

rewerner
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
John_Doe_88 Messages postés 606 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 13 décembre 2006
22 juin 2005 à 08:28
clearInterval est definitif normalement, la fonction ne devrait pas
se relancer apres. Montre le code il doit y avoir une erreur quelque
part
0
rewerner Messages postés 6 Date d'inscription jeudi 16 novembre 2000 Statut Membre Dernière intervention 23 juin 2005
22 juin 2005 à 10:46
Voila le code que je mets sur mes boutons:

Pour cet exemple le clip grossissant s'appelle "fleche"

Et j'ai aussi un autre bouton avec exactement le même code mais à la place de
250 j'ai mis 100 pour le parametre de l'echelle.

<!--[if !supportLineBreakNewLine]-->

on (release) {

setInterval(scale, 20);

function scale() {

fleche._xscale = fleche._xscale+((250-fleche._xscale)/20);

fleche._yscale = fleche._yscale+((250-fleche._yscale)/20);

}

if (fleche._xscale>240) {

clearInterval();

}

}



... C'est pas le bon code c'est ca hein!?...
0
John_Doe_88 Messages postés 606 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 13 décembre 2006
22 juin 2005 à 15:11
2 erreurs :

1/ il fo mettre le if dans la fonction scale :parce que sinon il peut arreter que si tu rappuie sur le bouton

2/ il faut donner un nom a ton intervalle, parce que clearInterval a besoin de savoir quel intervalle supprimer.



Vala le code corrigé :



on (release) {

I = setInterval(scale, 20);

function scale() {

fleche._xscale = fleche._xscale+((250-fleche._xscale)/20);

fleche._yscale = fleche._yscale+((250-fleche._yscale)/20);

if (fleche._xscale>240) {


clearInterval(I);


}

}



}
0
John_Doe_88 Messages postés 606 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 13 décembre 2006
22 juin 2005 à 15:19
Et il fodrait une sécurité aussi en fait parce que si tu rappuie sur le
bouton la il va te créer un deuxièmme interval et ca va causer
des conflits j suppose (surtout quils auront le meme nom) . Donc j
propose de rajouter un clearInterval au debut comme ca a chaque fois
que tu appuie il arrete le redimensionnement en cours et il en
recommence un nouvo :




on (release) {

clearInterval(I);

I = setInterval(scale, 20);

function scale() {

fleche._xscale = fleche._xscale+((250-fleche._xscale)/20);

fleche._yscale = fleche._yscale+((250-fleche._yscale)/20);

if (fleche._xscale>240) {

clearInterval(I);

}

}



}
0
rewerner Messages postés 6 Date d'inscription jeudi 16 novembre 2000 Statut Membre Dernière intervention 23 juin 2005
22 juin 2005 à 17:33
merci beaucoup, je vais faire ca tout de suite !!!!



a+ rewerner
0
Rejoignez-nous