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 fairec'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
décalée et trop tard...
Sur un calque action j'ai donc positionné le
Sur un bouton le code suivant qui au 1° clic (if) déplace dans un premier temps le brasDroit et l'équerre
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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) }
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...
Voilà j'espère être assez clair.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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); } }.. C'est sans doute au niveau de lineTo qu'il y a quelque chose à faire, mais quoi ???
Merci d'avance pour votre aide...
@+Thaisno
Partager