0

1 つは ltr と呼ばれ、もう 1 つは 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]」がトレースされますが、ltrTarget の x と y の位置を取得するのではなく、startingLocation にリセットされます。

私が変更され

trace(evt.target.dropTarget);

trace(evt.target.dropTarget.name);

そして、ltrTarget の一番上に配置しないと、「instance1」をトレースします。ltrTarget の上に ltr をドロップすると、ltr の x と y の位置が ltrTarget の x と y の位置にならないのはなぜですか?

4

1 に答える 1