問題タブ [konvajs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - KonvajsのKonva.Image()オブジェクトにテクスチャを追加するには?
この投稿の回答に従いました。画像をテクスチャパターンで塗りつぶすと、完全に機能しています。
KonvaJSで同じことを行う方法はありますか?
javascript - konvajs: ドラッグ アンド ドロップ後にアイテムの場所が変わらない
konva.js では、2 つのテキスト項目を持つグループがあります。グループを作りましたdraggable
。x
印刷してy
テキストにドラッグした後、変更されませんでした:
コードの残りの部分はまったく同じですKonva Text Demo
ios - sceneFunc()が毎回コンテキストをクリアしないようにする方法は?
KonvaJSでanyを定義すると、呼び出されるたびにそれが呼び出されます。sceneFunc()
Shape
draw()
Shape.draw()
layer.draw()
stage.draw()
sceneFunc()
問題は、コンテキストのクリアを防ぎ、以前の呼び出しで過去の描画を保持する方法です。
canvas - モバイルで親をスケーリングするとキャンバスがオフセットされる
画面サイズに合わせて div をスケーリングする Web アプリがあります。div の幅が 500px で画面が 600px だとしましょう。JavaScript で div にtransform: scale(1.2)
css プロパティを設定すると、画面サイズに一致します。div 内には、拡大縮小されたキャンバスがあります。KonvaJS を使用して要素を描画し、それらをドラッグする必要があります。コンピューターでアプリを実行すると、ドラッグはうまく機能しますが、モバイル、iPad、または iPhone で実行すると、ドラッグにオフセットがあり、ドラッグできるようにするには、要素の外側に指を置く必要があります。ここで簡単なアプローチを見ることができますhttps://jsfiddle.net/aapdl/47x75uuq/2/
各ボックスをコンピューターにドラッグしてから、モバイル、iPad、または iPhone にドラッグしてみてください。ありがとう。
javascript - 何百ものキャンバス円に対してパフォーマンスの高いオーバーラップ/衝突検出を行う方法は?
キャンバスにさまざまなサイズの 100 個の円を描いていますが、重なってはいけません。これらの円も右から左にアニメーション化され (画面から消えると、キャンバスの右端にループして戻ります)、垂直方向の「ボブ」もいくつかありますが、これも他の円と重なることはありません。
以下は私が現在試みているもので、ブラウザをロックしているようです。円のコレクションをループしてdetectOverlap()
関数を実行し、円のコレクションに渡します。
次に、detectOverlap()
関数は円をループし、次のチェックを実行します。
の場合hit == 0
、ループが中断され、オーバーラップがないと見なされます。それ以外の場合は、新しい X/Y 位置をランダムに計算し、プロセスを再開します。
これは効率が悪いようです。これを行うためのパフォーマンスのヒントはありますか?
キャンバス クラス (エントリ ポイント) : このクラスは「ステージ」であり、バブル オブジェクトを構築してキャンバスに追加します。
バブル クラス: 画面に描画されるデータを表すクラスです。これらのオブジェクトが互いに重ならないようにする必要があります。
EDIT : @MarcB からのコメントに基づいてこれを試してみましたが、ブラウザはまだロックしているようです。パフォーマンスのボトルネックが発生していますが、100 個の項目がすべて独自のwhile()
ループを実行していますか?