我有两个movieclips,一个叫做ltr,另一个叫做ltrTarget。它们都是彼此相邻的圆圈。这是我的代码:
import flash.geom.Point;
ltr.addEventListener( MouseEvent.MOUSE_DOWN, pickup );
ltr.addEventListener( MouseEvent.MOUSE_UP, place );
var startingLocation = new Point();
function pickup( evt:MouseEvent ):void {
startingLocation.x = evt.target.x;
startingLocation.y = evt.target.y;
evt.target.startDrag();
}
function place( evt:MouseEvent ):void {
evt.target.stopDrag();
trace(evt.target.dropTarget);
if ( evt.target.dropTarget == ltrTarget ) {
evt.target.x = ltrTarget.x;
evt.target.y = ltrTarget.y;
} else {
evt.target.x = startingLocation.x;
evt.target.y = startingLocation.y;
}
}
现在,当我将 ltr 拖放到 ltrTarget 以外的位置时,它会跟踪“null”并重置到其原始位置(重置为startingLocation),这是正确的。但是,当我将它放在 ltrTarget 顶部时,它会跟踪“[object Shape]”,但它仍会重置回 startingLocation,而不是采用 ltrTarget 的 x 和 y 位置。
我变了
trace(evt.target.dropTarget);
至
trace(evt.target.dropTarget.name);
当我将它放在 ltrTarget 的顶部时,它会跟踪“instance1”。当我将 ltr 放在 ltrTarget 的顶部时,为什么 ltr 的 x 和 y 位置不会变成 ltrTarget 的 x 和 y 位置?