私は自分のドラッグ機能を使いたくないのです。誰もが、startDrag()
同等のものを持っているライブラリを知っていますか?たとえば、四角形のボックスではなく、ドラッグ範囲の円形の半径を使用できますか?矩形以外の境界を持つstartDrag()に相当するAS3ライブラリ(つまり:循環)?
答えて
- あなたがする必要がある何がある:
A)MOUSE_DOWN:通販開始位置。 Enter_frameを聞き始めます。
B)ENTER_FRAME:)POSを開始するには、マウスのマウス位置からの距離を確認してください(使用ピタゴラス
c)の距離が少ない
xよりD)MOUSE_UPである場合にのみ、あなたのオブジェクトを移動:を聞いて停止しますEnterframe
ええ、これは私が "自分のロール"を意味するもので、私が取ったアプローチです。元の質問では、これをすでに行っていたライブラリを知っている人がいるかどうか尋ねました。私は少し質問を開いたままにしておきます。誰もこの組み込みのライブラリを持っていない場合は、私はあなたの答えを受け入れます。 –
いいえ、それを行うにはピクセル完全な衝突(この場合はマウスクリック)が必要です。本質的に、すべての表示オブジェクトは常にそれらに対して矩形の境界を持っています。あなたはこのような何かする必要があると思いますので、基本的には:
mySprite.addEventListener(MouseEvent.MOUSE_DOWN, mousedDown);
function mousedDown(e:MouseEvent):void
{
//Draw my sprite to a bitmap, then check the bitmap colour at mouseX/mouseY
uint colour = myBitmap.getPixel32(mouseX, mouseY);
if(colour != TRANSPARENT){
//We've actually clicked on the object, drag it
Sprite(e.currentTarget).startDrag();
}
}
注これは単なる擬似コードであるが、あなたはUINT値透明のように起動したかを把握する必要がありますし、また、あなたがのために考慮する必要がありますここで、スプライトの原点はビットマップに描画するときです。あなたがスプライトを持っていて、その内容が内部にあるとすれば、適切に描画するためにスプライトの幅の0.5倍の負のXオフセットとYオフセットを持つMatrixオブジェクトを作成する必要があります。 (円形ドラッグエリアの場合)
コメントありがとうございました。私は何を求めているのかはっきりしていないはずです。問題の境界は、オブジェクトのヒット領域を決定するためのものではありません(途中で自動的に行われます)。それは私がオブジェクトをドラッグできる場所の境界です!つまり、startDrag(lockCenter:Bool、bounds:Rect)です。境界を指定するときは、オブジェクトをドラッグできないRectを指定する必要があります(ドラッグを停止するだけです)。これは私が望むふるまいですが、輪郭線が四角形ではない円形の領域にしたいと考えています。それはまったく衝突する必要はありません。 –
大丈夫よ、大変申し訳ありません。私が何かを考えたり見つけることができたら、私は新しい答えを投稿します。 –
単純な円形衝突検出ルーチンを使うことができます。これは、オブジェクトの半径とそれらの間の距離を使用してヒット領域を処理します。おそらく、あなたはonDragメソッドでこの計算を手動で行い、下で計算された循環境界との衝突時にドラッグを停止する必要があります。
var deltax : Number = targetCentreCoord.x - hitTestCentreCoord.x;
var deltay : Number = targetCentreCoord.y - hitTestCentreCoord.y;
//works out if our circles are colliding, distance between the circles inc radius
if (((deltax * deltax) + (deltay * deltay)) <= ((((targetRadius) + (hitTargetRadius)) * ((targetRadius) + (hitTargetRadius)))))
{
Log.info("collision occured with " + candidate.name + " target coords " + targetCentreCoord + " candidate coords " + hitTestCentreCoord);
return true;
}
return false;
もう一度、申し訳ありませんが、この質問には衝突はありません。 –
質問の境界線でヒットを検出するには、衝突検出を行う必要があります。次に、ドラッグを停止します。あなたの質問を誤解していない限り。 – serenskye
怖いので、私は何かを打つことはありません。ドラッグの範囲を制限するだけです。 AS3はネイティブにこれを行いますが、円形のボックスではなく四角いバウンディングボックスのみです。ここでもまた、家庭での解決策ではなく、図書館を求める質問があります。自宅でのアプローチは簡単ですが、図書館がすべての辺のケースをキャッチするので、私は尋ねていました。 –
これは、ENTER_FRAMEイベントなしで行うことができます。 MOUSE_DOWNリスナーを持ち、境界内に境界がある場合は MOUSE_MOVEリスナーを追加します。 また、MOUSE_MOVEリスナーを削除するには、MOUSE_UPリスナーを使用してください。
- 1. WPF矩形描画境界
- 2. 非長方形境界を持つTinyMCE
- 3. 矩形の境界線のJava
- 4. Linux環境に相当するPyFMIパッケージ
- 5. UIViewの境界矩形をフレーム矩形よりも大きくすることができますか?
- 6. 循環参照を持つオブジェクトのin_array
- 7. QT + QGraphicssvgitemの境界矩形を無効にする方法は?
- 8. SVGテキストの周りの矩形の境界線
- 9. 循環参照外部キーを持つDB2データベース
- 10. 矩形の枠線を持つdrawString
- 11. AS3に矩形を描くと、境界線が部分的にオフスクリーンになっています
- 12. 平面グラフの境界(境界)エッジを見つける(幾何学的形状)
- 13. 一連の線の境界線の矩形を見つけるにはどうすればよいですか?
- 14. 座標による2次元形状の最小境界矩形の計算
- 15. Vimに相当するEmacsのオープン矩形
- 16. Flash AS3:マウスを特定の境界内に維持する
- 17. 開発環境と生産環境を持つGit
- 18. AS3 - 黄色のフォーカス矩形
- 19. ポリゴンの角度での境界矩形の計算
- 20. 画像境界は矩形ではなくカスタムです
- 21. GWT循環割り当て/リンクのガベージコレクション
- 22. 境界矩形を作成中に複数の円を削除するJavaFX
- 23. JTSを使った最小境界矩形
- 24. QGraphicsItem - >正しい境界矩形を取得
- 25. 矩形ペイントメソッド(MIDP)の塗りつぶし
- 26. 特定の形状の境界点を見つける方法
- 27. django環境では 'python -c'に相当しますか?
- 28. Selenium 2 chromeドライバの環境設定RubyBindingsに相当するJava
- 29. PowerShell:パス環境変数に相当するもの
- 30. 2つの矩形のインスペクション
円形のドラッグについては、次の質問と回答を参照してください。[MovieClipを円にドラッグする](http://stackoverflow.com/questions/6509716/constrain-movieclip-drag-to-a-circle/6510032#6510032) 。 –