Actionscript 移动和改变方向之间

Actionscript 移动和改变方向之间,actionscript,Actionscript,我试图让一个球落在舞台上,然后在另一个物体撞击时改变方向。在这个场景中,球落在滑梯上,并假设将滑梯滚到舞台底部。但是,在它继续向下滑动之前,它会跳到另一个位置,然后向下滑动。我不能指出这个问题。我也希望它停在左下角,而不是中间。你能帮我弄清楚吗 下面是演示该问题的代码和Gif。我正在使用BitmapData hitTest事件侦听器生成影响效果。我使用localToGlobal变量来找到球的位置,以便在球之间改变方向 import fl.transitions.Tween; import fl.

我试图让一个球落在舞台上,然后在另一个物体撞击时改变方向。在这个场景中,球落在滑梯上,并假设将滑梯滚到舞台底部。但是,在它继续向下滑动之前,它会跳到另一个位置,然后向下滑动。我不能指出这个问题。我也希望它停在左下角,而不是中间。你能帮我弄清楚吗

下面是演示该问题的代码和Gif。我正在使用
BitmapData hitTest
事件侦听器生成影响效果。我使用
localToGlobal
变量来找到球的位置,以便在球之间改变方向

import fl.transitions.Tween;
import fl.transitions.easing.*;

var blueClip: objct2 = new objct2();
addChild(blueClip);
//blueClip.x = 196;
//blueClip.y = 73;

var tweenY: Tween = new Tween(blueClip, "y", Regular.easeIn, 73, 0, 0, false);
var tweenX: Tween = new Tween(blueClip, "x", Strong.easeIn, 196, 0, 0, false);

var redRect: Rectangle = redClip.getBounds(this);
var redClipBmpData = new BitmapData(redRect.width, redRect.height, true, 1);
redClipBmpData.draw(redClip);


var blueRect: Rectangle = blueClip.getBounds(this);
var blueClipBmpData = new BitmapData(blueRect.width, blueRect.height, true, 1);
blueClipBmpData.draw(blueClip);

Button.addEventListener(MouseEvent.CLICK, fl_MouseClickHandler);

function fl_MouseClickHandler(event: MouseEvent): void {
  var tweenY: Tween = new Tween(blueClip, "y", Regular.easeIn, 100, 400, 1, true);

  addEventListener(Event.ENTER_FRAME, enterFrame);
}

function enterFrame(e: Event): void {

  if (redClipBmpData.hitTest(new Point(redClip.x, redClip.y),
  255,
  blueClipBmpData,
  new Point(blueClip.x, blueClip.y),
  255
  )) {
  var yourMC: DisplayObject = blueClip;
  var point1: Point = yourMC.localToGlobal(new Point(yourMC.getRect(yourMC).x, yourMC.getRect(yourMC).y));
  var point2: Point = yourMC.localToGlobal(new Point(yourMC.getRect(yourMC).x + yourMC.getRect(yourMC).width, yourMC.getRect(yourMC).y + yourMC.getRect(yourMC).height));

  var alef: Number = point1.x; //x position of the object.
  var bet: Number = point1.y; //y position of the object.
  //var gimel: Number = point2.x - point1.x; //width of the object.
  //var daled: Number = point2.y - point1.y; //height of the object.

redClip.filters = [new GlowFilter()];
  var tweenY: Tween = new Tween(yourMC, "y", Regular.easeIn, alef, 392, 1, true);
  var tweenX: Tween = new Tween(yourMC, "x", Regular.easeIn, bet, 0, 1, true);
  //tweenY.stop();
  trace("hit");
  trace("x" + alef);
  trace("y" +  bet);


  } else {
  redClip.filters = [];
  //trace("miss");
  }
}
tweenY.stop();


trace(tweenY.stop);
stop();

我明白了。我不得不删除侦听器,X和Y混淆了,现在已经更正

removeEventListener(Event.ENTER_FRAME, enterFrame);
        var yourMC: DisplayObject = blueClip;
        var point1: Point = yourMC.localToGlobal(new Point(yourMC.getRect(yourMC).x, yourMC.getRect(yourMC).y));
        var point2: Point = yourMC.localToGlobal(new Point(yourMC.getRect(yourMC).x + yourMC.getRect(yourMC).width, yourMC.getRect(yourMC).y + yourMC.getRect(yourMC).height));
        var alef: Number = point1.x; //x position of the object.
        var bet: Number = point1.y; //y position of the object.

        redClip.filters = [new GlowFilter()];

        var tweenXa: Tween = new Tween(blueClip, "x", Regular.easeIn, alef, 0, 1, true);
        var tweenYb: Tween = new Tween(blueClip, "y", Regular.easeIn, bet, 392, 1, true);

        //tweenY.stop();
        trace("hit");

        //trace("x" + alef);
        //trace("y" + bet);

    } else {
        redClip.filters = [];
        //trace("miss");
    }
}