2016-03-11 1 views
0

Je suis un animateur qui essaie de se lancer dans le codage et je suis un peu coincé avec les fondamentaux.Flash cc + html 5: tracer des lignes entre des objets en mouvement

Il s'agit d'un simple cycle de marche de personnage, et j'essaie de dessiner les jambes avec le code [arcTo] entre le corps [ManBody] et les pieds [foot01].

Les lignes sont dessinées et le corps se déplace - mais les lignes sont redessinées sur CHAQUE image - Comment/Où dois-je mettre stage.update(); de sorte que ce soit juste une seule ligne qui dessine sur la scène, puis se déplace entre les parties mobiles?

//mouse cursor 
stage.canvas.style.cursor = "none"; 
this.ManBody.mouseEnabled = false; 
this.addEventListener("tick", fl_CustomMouseCursor.bind(this)); 

function fl_CustomMouseCursor() { 
    this.ManBody.x = (stage.mouseX+350) * 0.5 ; 
    this.ManBody.y = (stage.mouseY+200) * 0.5; 
} 

//line 
createjs.Ticker.addEventListener("tick",fl_DrawLineCont.bind(this)); 
createjs.Ticker.setFPS(10); 

function fl_DrawLineCont(event) { 

var stroke_color = "#ff0000"; 
var shape = new createjs.Shape(new createjs.Graphics().beginStroke(stroke_color) 
.moveTo(this.ManBody.x, this.ManBody.y) 
.arcTo(this.foot01.x, this.foot01.y, this.ManBody.x, this.ManBody.y, 50).endStroke()); 
this.addChild(shape); 
    stage.update(event); 
} 

Répondre

0

Vous créer une forme chaque image, vous devez créer en dehors de cela et redessiner graphiques comme ceci:

var stroke_color = "#ff0000"; 
var graphics = new createjs.Graphics() 
var shape = new createjs.Shape(graphics); 
this.addChild(shape); 
function fl_DrawLineCont(event) 
{ 
    graphics.clear(); 
    graphics.beginStroke(stroke_color); 
    graphics.moveTo(this.ManBody.x, this.ManBody.y).arcTo(this.foot01.x, this.foot01.y, this.ManBody.x, this.ManBody.y, 50).endStroke(); 
    stage.update(event); 
} 
+0

merci beaucoup pour la réponse! @ ices_2 ça marche bien J'ai juste besoin de régler le "ticker" car il y a d'étranges problèmes de vitesse. –