Déplacement automatique d'objet

Patounoff Messages postés 25 Date d'inscription dimanche 4 novembre 2007 Statut Membre Dernière intervention 16 octobre 2010 - 15 oct. 2010 à 17:09
Patounoff Messages postés 25 Date d'inscription dimanche 4 novembre 2007 Statut Membre Dernière intervention 16 octobre 2010 - 16 oct. 2010 à 16:42
dans un swf j'ai un container "parent"
dans lequel je souhaiterai faire se déplacer un objet
- automatiquement sans clic et chaque (X) secondes,
- alternativement d'un point A(x;y) vers un point B(x2;y2).

Est-ce possible ?
si oui comment procéder ? ou existe-t-il un script qui pourrait m'aider.
Merci par avance de votre aide


__________________________________
A qui se noie, lance une corde ...

4 réponses

Patounoff Messages postés 25 Date d'inscription dimanche 4 novembre 2007 Statut Membre Dernière intervention 16 octobre 2010
15 oct. 2010 à 17:14
PS: Le bonjour d'introduction a sauté lors du copier coller...

Merci de m'en excuser
__________________________________
A qui se noie, lance une corde ...
0
BBFUNK01 Messages postés 1310 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 20 juin 2014 6
15 oct. 2010 à 18:33
Hello,

oui c'est possible, si tu codes en as2 il faudrait par exemple utiliser setInterval() qui lancerait une fonction de déplacement de ton objet, par exemple :
- le clip "toto" est le clip conteneur, le clip "zozo" est le clip contenu dans le clip "toto", donc le clip qu'on veut déplacer.
Au préalable il faut définir les positions A et B auxquelles on doit déplacer alternativement le clip "zozo". Donc par exemple :
var PointAx:Number = 50;
var PointAy:Number = 20;
var PointBx:Number = 250;
var PointBy:Number = 150;

Ensuite on va rédiger 2 fonctions pour le déplacement du clip "zozo", une fonction pour le déplacer de A vers B, et une autre fonction pour le déplacer de B vers A :
function ZozoVersA(){
toto.zozo._x -= (PointBx - PointAx)/300;//on fait la différence des coordonnées et on divise par 300
//pour obtenir un déplacement coordonné avec le déplacement en _y (tu peux diviser par un autre nombre
//en fonction de la vitesse voulue.
toto.zozo._y -= (PointBy - PointAy)/300;
if(toto.zozo._x == PointAx){
clearInterval(VersA);
}
}

function ZozoVersB(){
toto.zozo._x += (PointBx - PointAx)/300;
toto.zozo._y += (PointBy - PointAy)/300;
if(toto.zozo._x == PointBx){
clearInterval(VersB);
}
}


Donc les fonctions de déplacement sont crées, maintenant il faut les lancer au moment voulu, donc pour ça on va déjà définir la position de départ du clip "zozo" :

toto.zozo._x = PointAx:
toto.zozo._y = PointAy;


Ensuite on va lancer un intervalle qui va lancer une fonction pour pister la position du clip "zozo", par exemple toutes les 3 secondes, et donc lancer la fonction de déplacement vers A ou vers B :
function RecupPosition(){
if(toto.zozo._x > 150){//on prend comme point de vérification le milieu du parcours de zozo en _x
VersA = setInterval(ZozoVersA, 3000);//donc si toto.zozo._x est supérieur à 150, on lance la fonction pour aller vers A
}else if(toto.zozo._x < 150){//si toto.zozo._x est inférieur à 150 on déplace "zozo" vers B
VersB = setInterval(ZozoVersB, 3000);
}
}

Tempo = setInterval(RecupPosition, 3000);


Donc en totalité ça donnerait :

var PointAx:Number = 50;
var PointAy:Number = 20;
var PointBx:Number = 250;
var PointBy:Number = 150;

toto.zozo._x = PointAx:
toto.zozo._y = PointAy;

function ZozoVersA(){
toto.zozo._x -= (PointBx - PointAx)/300;
toto.zozo._y -= (PointBy - PointAy)/300;
if(toto.zozo._x == PointAx){
clearInterval(VersA);
}
}

function ZozoVersB(){
toto.zozo._x += (PointBx - PointAx)/300;
toto.zozo._y += (PointBy - PointAy)/300;
if(toto.zozo._x == PointBx){
clearInterval(VersB);
}
}

function RecupPosition(){
if(toto.zozo._x > 150){
VersA = setInterval(ZozoVersA, 3000);
}else if(toto.zozo._x < 150){
VersB = setInterval(ZozoVersB, 3000);
}
}

Tempo = setInterval(RecupPosition, 3000);


A essayer pour voir...

A plus ,

BBFUNK01
//C'est en forgeant qu'on devient forgeron... ;-) ;
0
Patounoff Messages postés 25 Date d'inscription dimanche 4 novembre 2007 Statut Membre Dernière intervention 16 octobre 2010
15 oct. 2010 à 20:09
Wafff ! j'ai du pain sur la planche pour ce weekend

Merci BBFUNK01
Je vais regarder tout cela avec le plus grand soin et te tiendrai au courant de l'évolution de la chose.
Je vais avoir pas mal de trucs à modifier car je suis sous swish et non Macromed...
Mais ne désespérons pas, l'aventure c'est l'aventure
et si d'autres y sont arrivé, pourquoi pas moi...

Allez hop ! c'est parti.
A plus

__________________________________
A qui se noie, lance une corde ...
0
Patounoff Messages postés 25 Date d'inscription dimanche 4 novembre 2007 Statut Membre Dernière intervention 16 octobre 2010
16 oct. 2010 à 16:42
J'ai essayé ton script, mais il ne tourne pas malgrès plusieurs tentatives de modif
dans la position des conteners et animations ou encore la syntaxe...
je l'ai mis de côté pour le regarder de plus prés à mes moments de libre.
par contre dans swish la fonction existait (mais bien cachée )
donc mon problème est résolu
merci encore de ton aide

__________________________________
A qui se noie, lance une corde ...
0
Rejoignez-nous