Actionscript 3 - dropTarget无效

时间:2014-02-06 18:47:25

标签: actionscript-3 drag-and-drop droptarget

我有两个动画片段,一个叫做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位置?

1 个答案:

答案 0 :(得分:1)

使用event.currentTarget ...甚至直接实例.. ltr