nextFrame();这不会停留在下一帧

时间:2015-09-03 15:05:28

标签: actionscript-3

当球落入装满水的桶中时,我有这种情况。水桶有4层水,排列在桶内的4个框架中。使用hitTestObject我每次球落水时跳跃,水桶中的水位将下降一级。但相反,事实证明,只要球继续向下,它将触发nextFrame,因此它不会在下一帧停止,而是通过所有帧。任何解决方案?

if (yesh8gBall21.hitTestObject(yesh8allBuckets1)) {
  yesh8allBuckets1.nextFrame();}

2 个答案:

答案 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();
    }
}