2016-07-04 9 views
0

私は、このようにカスタムイベントを呼んでいる:スケーリング/イベントを動かす: How can I fire custom events on canvas in Fabric JS?コールfabricjsイベントが連続して

オブジェクトのように継続的にそれを呼び出すための方法はありますか?

SOLUTION:

私は、オブジェクトを使用してこの問題を解決:イベントを動かす:あなたが継続的にイベントを呼び出す必要がある場合

canvas.on({'object:moving': handleMovement}); 
... 
var handleMovement = function (event) { 

    //only when a specific corner was dragged 
    if (event.target.__corner == 'mb') { 
     //reset original position 
     event.target.top = event.target.originalState.top; 
     event.target.left = event.target.originalState.left; 
     //do other stuff 
    } 
} 

答えて

1

、あなたはwhileループでそれをラップし、または使用することができます何らかの種類のタイムアウト。

while (shouldFire) { 
    canvas.trigger(event); 
} 

又は

setTimeout(triggerEvent, 100); 
function triggerEvent() { 
    canvas.trigger(event); 
    setTimeout(triggerEvent, 100); 
} 

しかし、それは、ユーザ(特にしばらく)のために理想的ではないかもしれません。

オブジェクト:スケーリング/移動イベントは連続して呼び出されているように見えるかもしれませんが、私はそれらが単にユーザーのやりとりに応じて非常に迅速に呼び出されていると思います。これを見るためにfabricjsウェブサイトに良いevent demoがあります。オブジェクトを選択して静止状態にするだけで、キャンバスでイベントが発生することはありません。その代わりに、キャンバスの周りの形をドラッグするなど、ユーザーの動きに応じてイベントが発生します。だから、イベントを継続的に解消しようとするのではなく、ユーザーの入力に小さな変化を聞くことができます。

+0

提案していただきありがとうございます。私は、状況へのアプローチを完全に変えて、私の問題を解決しました。私はオブジェクトを使用しました:特定のコーナーがドラッグされた場合はイベントの移動を移動し、それを以前の位置にリセットします。 –

関連する問題