2014-05-06 4 views
0

en considérant this basic case, on peut s'attendre à ce que les coordonnées de la couche soient mises à jour ... mais elles ne le seraient pas. Au lieu de cela, il est possible de mémoriser le point de départ, de calculer le décalage de la souris puis de mettre à jour les coordonnées, comme dans this test mais ... l'effet est assez extrême. attendu: Point x1, y1 est statique Résultat: le point x1, y1 se déplace incroyablement rapideglisser drawLine coordonnées d'optimisation jcanvas

Si les coordonnées à la mise en constante, la traînée reste le même. Le problème principal ici est que l'action de glisser s'applique à l'ensemble du calque.

Correction: applique la modification à la fin de la traînée, comme in this snippet. Mais c'est relativement moche. Tout le monde a une meilleure façon de

  • obtenir sur la course les coordonnées réelles des points de la ligne
  • parviennent à maintenir un point de la ligne statique alors que les autres se déplacent

attente vos suggestions,

Répondre

1

Afin de maintenir l'efficacité des couches de glissement, jCanvas ne compense que les propriétés x et y pour toutes les couches glissables (y compris les tracés). Par conséquent, lors du déplacement, vous pouvez calculer les positions absolues de tout ensemble de coordonnées à l'aide chemin quelque chose le long de ces lignes:

var absX1 = layer.x + layer.x1; 
var absY1 = layer.y + layer.y1; 

(en supposant layer fait référence à une couche jCanvas, bien sûr)

Questions connexes