AS3 でマーキー選択効果を実現し、動的な四角形を描画して複数のムービークリップを選択し、ドラッグ アンド ドロップする方法を誰か教えてもらえますか?
質問する
1545 次
1 に答える
2
startDrag()
一度に 1 つのオブジェクトしかドラッグできないため、複数のオブジェクトをドラッグ可能にする必要がある場合は使用しないでください。代わりに、マウス イベントをリッスンし、手動で移動します。
var oldX:int;
var oldY:int;
var dragging:Boolean = false;
function onMouseDown(evt:MouseEvent):void {
dragging = true;
oldX = evt.stageX;
oldY = evt.stageY;
}
function onMouseMove(evt:MouseEvent):void {
if (!dragging) return;
var dX:int = evt.stageX - oldX;
var dY:int = evt.stageY - oldY;
for (int i = 0; i < selectedClips.length; i++) {
var clip:DisplayObject = selectedClips[i];
clip.x += dX;
clip.y += dY;
}
oldX = evt.stageX;
oldY = evt.stageY;
}
function onMouseUp(evt:MouseEvent):void {
dragging = false;
}
このコードは、次のことを前提としています。
- 選択したオブジェクトの配列は と呼ばれ
selectedClips
ます。 - 選択したオブジェクトの配列はすべて から継承し
DisplayObject
ます。 - これらの関数を呼び出す
MOUSE_DOWN
、MOUSE_MOVE
、およびマウス イベントのすべてのドラッグ可能なオブジェクトにイベント リスナーを追加しました。MOUSE_UP
これら 3 つの条件のいずれかが満たされていない場合は、私のコードまたはあなたのコードを更新して正しく動作するようにしてください。また、オブジェクトがドロップされたときに追加の処理を行う必要がある場合は、マウスアップ ハンドラーを使用してカスタム コードを追加できます。
于 2012-07-20T06:13:04.177 に答える