gotoAnPlay() returns 用相同的数字调用两次后到第一帧

gotoAnPlay() returns to first frame after being called twice with same number

我的场景中有两个 keyframes。在第一个中,我有以下代码:

import flash.events.KeyboardEvent;

stop();
stage.addEventListener(KeyboardEvent.KEY_DOWN, foo);

function foo(event:KeyboardEvent):void {
    gotoAndPlay(2);
}

在第二个中,我有以下代码:

stop();

在我第一次按下某个键时,场景按预期进入第 2 帧。但是第二次,它转到第 1 帧。

此外,如果我使用 gotoAndStop 而不是 gotoAndPlay,场景总是转到第 2 帧。

有人知道这种行为背后的原因吗?

根据 Adob​​e 的定义,gotoAndPlay()

Starts playing the SWF file at the specified frame ...

因此,如果您处于场景的第二帧,当您执行 gotoAndPlay(2) 时,它与简单的 play() 具有相同的动作,这就是您将回到第一帧的原因。当它在第二帧执行时,它与 gotoAndStop(2) 的行为相同,它等于一个简单的 stop().

结论:

  • gotoAndPlay() 当它从一个帧调用并去播放同一帧时,它等于一个简单的 play().
  • gotoAndStop() 当它从一个帧调用并停止同一帧时,它等于一个简单的 stop().

希望能帮到你。