当球落入装满水的桶中时,我有这种情况。水桶有4层水,排列在桶内的4个框架中。使用hitTestObject
我每次球落水时跳跃,水桶中的水位将下降一级。但相反,事实证明,只要球继续向下,它将触发nextFrame
,因此它不会在下一帧停止,而是通过所有帧。任何解决方案?
if (yesh8gBall21.hitTestObject(yesh8allBuckets1)) {
yesh8allBuckets1.nextFrame();}
答案 0 :(得分:0)
你可以在球中给球一个属性,并在发射时将其设置为假。
if (yesh8gBall21.hitTestObject(yesh8allBuckets1) && !yesh8gBall21.inWater) {
yesh8gBall21.inWater = true;
yesh8allBuckets1.nextFrame();
}
答案 1 :(得分:0)
这个似乎有效。代码在事件处理程序/侦听器中,我只需要在适当的时候删除侦听器。
import flash.events.MouseEvent;
import flash.events.Event;
stop();
button1.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler1);
function mouseDownHandler1(event: MouseEvent): void {
yesh8gBall21.gotoAndPlay(1);
}
this.addEventListener(Event.ENTER_FRAME, handle8Collision2);
function handle8Collision2(evt: Event): void {
if (yesh8gBall21.hitTestObject(yesh8allBuckets1)) {
removeEventListener(Event.ENTER_FRAME, handle8Collision2);
yesh8allBuckets1.nextFrame();
}
}