2014-05-06 37 views
0

考慮到this basic case,人們可能期望圖層的座標被更新......但他們不會。drag drawLine jcanvas優化座標

取而代之,可以記住起點,計算鼠標偏移量,然後更新座標,就像在this test中一樣,但是......效果是相當極端的。 預期:點x1,y1是靜態的 結果:點x1,y1移動得非常快

如果將座標設置爲常量,則拖動保持不變。 這裏的主要問題是拖動操作適用於整個圖層。

修復:在拖動結束時應用修改,如in this snippet。 但它相對難看。任何人都有權

  • 一個更好的方式在運行得到行
  • 管理,保持線路靜態的點的點的實際座標,而其他移動

展望您的建議,

回答

1

爲了保持拖動層的效率,jCanvas只爲任何可拖動圖層(包括路徑)偏移xy屬性。因此,拖動時,你可以計算任意一組路徑的絕對位置使用這些方針的東西座標:

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

(假設當然layer引用一個jCanvas層)