Déplacement d'un clip déjà en interpolation

Résolu
cs_bibin06
Messages postés
7
Date d'inscription
jeudi 20 novembre 2008
Statut
Membre
Dernière intervention
10 avril 2010
- 5 avril 2010 à 18:31
cs_bibin06
Messages postés
7
Date d'inscription
jeudi 20 novembre 2008
Statut
Membre
Dernière intervention
10 avril 2010
- 6 avril 2010 à 10:28
Bonjour,
je débute en AS :) et je suis en train de créer un diaporama défilant avec des clips (sans image à charger).

J'ai créé dans un premier temps un MovieClip sur ma scène "_root.txt_etape3" dans le quel se trouve mon diaporama défilant.
J'ai créé ensuite plusieurs clips qui défilent (_root.txt_etape3.pack1/pack2/pack3,...).
Dans chacun des ces clips on trouve 2 autres clips (_root.txt_etape3.pack1.pack_1 et _root.txt_etape3.pack1.txt1).
Jusque là tout fonctionne. "Dsl pour les explications trop longues"

Je voudrais que lorsqu'une personne clic sur un clip (_root.txt_etape3.pack5) celui-ci quitte
ma diapo et aille se placer dans le récipient sur ma scène.
Je créé un trait que mon clip doit suivre.
Mais je n'arrive pas à trouver les bonnes coordonnées.
Je ne peux pas utiliser "this.moveto" pour tracer mon trait, car this subit des interpolations et changements de forme.
Mon trait doit partir de la position initiale de mon clip vers mon point fixe "récipient" définit sur ma scène.
Pouvez-vous m'aider ?

pack5.onPress = function()
{
x1 = pack5.pack_5._x;
y1 = pack5.pack_5._y;
x2 = 170;
y2 = 120;

this.lineStyle(2, 0x666666, 100);
this.moveTo(pack5.pack_5._x,pack5.pack_5._y);
this.lineTo(x2, y2);

barycentre = function(a, b, t) {
return (1 - t)*a + t*b;
}
 
dt = 1/25;
t = 0;

onEnterFrame = function() {
t += dt;
pack5.pack_5._x = barycentre(x1, x2, t);
pack5.pack_5._y = barycentre(y1, y2, t);

// Déplacement
if(pack5.pack_5._x==x2 and pack5.pack_5._y==y2){delete this.onEnterFrame;}
if(t > 1) {t = 1; dt *= - 1;}
if(t <=0) {t = 0; dt *= - 1;}
}	
}


Je peux vous donner l'extrait ma source : http://www.box.net/shared/01lm4ucqs2
Ou vous montrer le .swf : http://www.box.net/shared/0hmnkxopjt
L'interraction n'agit que sur le "pack5" pour le moment.

Je vous remercie déjà pour avoir tout lu ^^.

1 réponse

cs_bibin06
Messages postés
7
Date d'inscription
jeudi 20 novembre 2008
Statut
Membre
Dernière intervention
10 avril 2010

6 avril 2010 à 10:28
Résolu
Je trace le trait dans le dossier parent.
Mon image ne subit plus les effets de l'interpolation.
pack5.onPress = function()
{
Prx_E3 = 15;

x1 = pack5._x;
y1 = pack5._y;
x2 = 416;
y2 = 123;

_root.txt_etape3.lineStyle(2, 0x666666, 100);
_root.txt_etape3.moveTo(_root.txt_etape3.pack5,_root.txt_etape3.pack5._y);
_root.txt_etape3.lineTo(x2, y2);

barycentre = function(a, b, t) {
return (1 - t)*a + t*b;
}
 
dt = 1/25;
t = 0;

onEnterFrame = function() {
t += dt;
_root.txt_etape3.pack5._x = barycentre(x1, x2, t);
_root.txt_etape3.pack5._y = barycentre(y1, y2, t);

// Déplacement
if(_root.txt_etape3.pack5._x==x2 and _root.txt_etape3.pack5._y==y2){delete this.onEnterFrame;}
if(t > 1) {t = 1; dt *= - 1;}
if(t <=0) {t = 0; dt *= - 1;}
}
}
3