2014-04-01 14 views
0

我做了一個應用程序,執行不同項目的拖放:圖像和形狀。我將放置目標限制到特定層:rightLayer在我的情況下,使用if ... else進行簡單測試。除非我想讓項目在leftLayer中恢復原始位置,當它不嘗試rightLayer的邊框(就像jquery,但在kineticJS)時,一切都很好。或者即刻消失。KineticJS:將物品動畫後回落到初始位置時,不落入放置目標

這是JSFIDDLE。爲了更好地理解,試試這個用例:

  • 拖動矩形,
  • 電網前右砸,一個項目
  • 點擊左側層。

回答

0

您可以使用dragend中的測試自行銷燬除dropzone以外的其他任何克隆。

演示:http://jsfiddle.net/m1erickson/2T68g/

clone1.on("dragend",function(){ 

    // destroy this clone if dropped outside the dropzone 

    if(this.x()<dropzone.x()){ 
     this.destroy(); 
     layer.draw(); 
    } 

}); 
+0

謝謝!我忘了添加最後兩行。所以沒有辦法做動畫,就像還原? –

+1

當然!在'clone1.on(「dragstart」'保存原始節點的XY,然後在if()條件下創建一個Kinetic.Tween,將克隆移回到原始節點的頂部,將一個onFinish回調添加到Tween中破壞克隆 – markE

+0

再次感謝:)我不知道Kinetic.Tween甚至存在。我會試一試,稍後發佈一個編輯後的jsfiddle。 –

相關問題