私は自分のドラッグ機能を使いたくないのです。誰もが、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. imagescは矩形以外のグリッドを持つフィーチャが好き[MATLAB]
- 3. 非長方形境界を持つTinyMCE
- 4. 複雑なフォームに境界矩形?
- 5. 矩形の境界線のJava
- 6. Linux環境に相当するPyFMIパッケージ
- 7. UIViewの境界矩形をフレーム矩形よりも大きくすることができますか?
- 8. ViewGroupの循環クリップ境界を作成する方法
- 9. Python:画像の矩形を境界線に縮小する
- 10. QT + QGraphicssvgitemの境界矩形を無効にする方法は?
- 11. 四色の境界線を持つ描画可能円の形状を持つ
- 12. 循環参照を持つオブジェクトのin_array
- 13. SVGテキストの周りの矩形の境界線
- 14. 隣接する矩形の境界を計算する
- 15. 境界矩形にアフィン変換を適用する
- 16. AS3に矩形を描くと、境界線が部分的にオフスクリーンになっています
- 17. 2つの環境を持つクロスドメインクッキー
- 18. 循環参照外部キーを持つDB2データベース
- 19. supertraitよりも厳密な関連するタイプ境界を持つ形質
- 20. 境界制約を持つ非線形最小二乗のソルバー
- 21. 既知の境界を持つ凹面メッシュ三角形分割
- 22. GoogleはJqueryとAJAXで矩形境界をマップします
- 23. リストアイテムを境界矩形で整列します
- 24. 矩形の枠線を持つdrawString
- 25. Flash AS3:マウスを特定の境界内に維持する
- 26. linuxカーネルドライバ環境にpciv_vf_configに相当するものがありますか
- 27. AS3 - 黄色のフォーカス矩形
- 28. 円の境界線を持つpngアイコン -
- 29. ポイントが矩形の境界内にある場合はtrueを返します
- 30. 平面グラフの境界(境界)エッジを見つける(幾何学的形状)
円形のドラッグについては、次の質問と回答を参照してください。[MovieClipを円にドラッグする](http://stackoverflow.com/questions/6509716/constrain-movieclip-drag-to-a-circle/6510032#6510032) 。 –