0

2 つのキャンバスがあるとします。キャンバスにある図形をドラッグして、別のキャンバスにドロップしたいと思います。それは可能ですか?

私の質問を理解してくれてありがとう。

4

3 に答える 3

0

それは間違いなく可能です。ただし、特に簡単なことではありません。基本的な考え方をお伝えします。計算と実装は自分で行う必要があります。

  1. ソース形状の境界を把握します。
  2. そのピクセルデータを取得し、それを使用して、古いものの上に新しいキャンバス要素を構築します。これを使用してドラッグを処理します。
  3. この一時的なキャンバスにドラッグロジックを実装します。
  4. ターゲットキャンバス上の「ドロップ」を検出し、境界がどこに当たるかを把握します。ターゲットピクセルデータをドラッグ可能なデータに置き換えます。
  5. ドラッグ可能なキャンバスを取り除きます。

これがお役に立てば幸いです。

于 2012-09-22T15:22:29.807 に答える
0

最も簡単なのは、DOM プロキシ オブジェクトを使用して、マウス イベントをキャッチし、キャンバスをオーバーレイすることです。問題のコードは、ライブラリの使用を考慮すると非常に複雑であるため:

http://www.html5canvastutorials.com/kineticjs/html5-canvas-drag-and-drop-tutorial/

キャンバスからキャンバスへの移動は、まだ自分で理解する必要があります。ユースケースは非常にまれであり、ドラッグがキャンバス上にないときにオブジェクトをアニメーション化する必要があるためです。確かに可能ですが、非常に複雑です。

于 2012-09-24T11:01:34.570 に答える
0

私はあなたの質問を理解していないかもしれませんが、形はあなたが描いた文脈にあるのではないでしょうか?

例:

context1.drawImage(...);
context2.drawImage(...);

単にコンテキストを変更しますか?

于 2012-09-24T03:22:30.923 に答える