0

ユーザーがKinetic.Imageオブジェクトを必要な時間 (この場合は 5 秒)ドラッグする必要があるアプリケーションを作成しようとしています。これは、手元のタスクを実行せずに次の段階に進まないようにするために使用されます。アプリケーションに KineticJS を使用しています。これは、dragstart、dragmove、dragend イベント ハンドラーの組み合わせで可能ですか?

4

2 に答える 2

0
 var count = 0;
 function Tick() {
     count++;
     window.setTimeout("Tick()", 1000);
 }

 myObject.on('dragstart', function(){
     Tick();
 });

 myObject.on('dragend', function(){
     return count;
 }

これが良い方法かどうかはわかりませんが、setTimeout または setInterval を使用して変数「count」をインクリメントし、ドラッグが終了したらその変数を返すことができます。

ネイティブの KineticJS 実装が必要な場合は、ミリ秒をカウントする「frame.time」が組み込まれているため、Kinetic.Animation を使用する必要がありますが、イベントをドラッグするだけの場合は少し面倒です。

于 2012-12-24T18:46:08.327 に答える
0

私は自分で解決策を思いついたので、興味のある人のためにここに置いておきます。これを行う最も簡単な方法は、ドラッグスタートでタイムスタンプを取得し、ドラッグエンドで同じことを行い、差分を実行することだと思います。その差でグローバル カウンター変数をインクリメントし、ドラグエンドでチェックを行って、そのカウンターが必要な量を超えているかどうかを確認します。

object1.on("dragstart", function() { lastTimestamp = Date.now(); });
object1.on("dragend", function() { timeTaken = Date.now() - lastTimestamp; });
于 2012-12-24T20:43:54.390 に答える