[FLASH MX2004] Simuler le traçage d'une ligne en AS, mais...
Bonsoir à tous,
Simuler le traçage d'une ligne en AS, mais comme on le ferait avec un crayon .
Problème : :shock: si je trace une ligne en actionScript, celle-ci est dessinée "plus vite que son ombre"...
Ce que je souhaiterais faire :? c'est que cette ligne se dessine en 1 ou 2 secondes comme on le ferait avec
une régle et un crayon à la main.
Dans l'anim que je suis en train de mettre au point, :) dans un 1° temps, une main avec son crayon, et une équerre se déplacent
vers un point de départ, puis :o dans un 2° temps, simule le déplacement vertical du traçage d'un trait, mais le trait se trouve dessiné
aussitôt l'action lancée :!: ... et la main termine son mouvement mais :arrow: décalée et trop tard...
Sur un calque action j'ai donc positionné le
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| MovieClip.prototype.transfo=function(p,d,a,t){
//p=valeur "_x" ou "_y" de monclip à déplacer, d=point de départ déplacement,
//a=pt arrivé, t=temps du déplacement
clearInterval(this["inter"+p])
var x=0
var i=10 //vitesse de déplacement du clip "equerre"
var ref=this
this["inter"+p]=setInterval(function(){
ref[p]=(a-d)/(t)*(x+=i/1000)+d;
updateAfterEvent();
if(x>=t){
clearInterval(ref["inter"+p]);
this[p]=a;
}
},i)
} |
Sur un bouton le code suivant qui au 1° clic (if) déplace dans un premier temps le brasDroit et l'équerre
et au 2° clic, (else) trace une ligne "instantanément" (c'est elle que j'aimerais voir se tracer à une vitesse
égale au déplacement du bras qui tient le crayon ), et déplace le bras sur l'axe y dans une vitesse normale...
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| on (press) {
if (trait1 != 4) {
varJ=50
trace ("coucou4")
brasD_clp.transfo("_x",varJ+varKtremie/10,varJ+varMreculee/10,1,Math.sin)
brasD_clp.transfo("_y",varJ+varLcage/10,varJ+varLcage/20,1,Math.sin)
equerre.transfo("_x",varJ+varKtremie/10+10,varJ+varMreculee/10,1,Math.sin)
trait1=4;
} else {
moveTo (varJ+varMreculee/10,varJ+varLcage/20);
lineStyle(2,0xFF0000,80);
lineTo (varJ+varMreculee/10,varJ+varLcage/10);
brasD_clp.transfo("_y",varJ+varLcage/20,varJ+varLcage/10,1,Math.sin)
gotoAndStop(11);
}
} |
Voilà j'espère être assez clair. :? .. C'est sans doute au niveau de lineTo qu'il y a quelque chose à faire, mais quoi ???
Merci d'avance pour votre aide :D ...
@+Thaisno
[FLASH MX2004] Simuler le traçage d'une ligne en AS, mais...
Pas mal du tout, :ccool: le principe est là, je vais essayer cet après midi d'adapter celà pour 1 seule ligne... :ange:
Si j'y arrive pas je te refais signe... :oops:
Et si j'y arrive je te refais signe :) comme d'hab.
Merci, et @+ Thaisno