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