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... ;-) ;