0

我是 AS3 的新手,虽然我一直在寻找解决问题的方法,但我没有成功。我有一个动画演示文稿,我只想通过箭头进行导航。一切都在主时间线上。在第一帧中,我制作了这段代码

var zpet: Number;
if (currentFrame == 1) {
    zpet = 1;
}
stage.addEventListener(KeyboardEvent.KEY_DOWN, posun);

function posun(event: KeyboardEvent): void {
    if (event.keyCode == 37) {
        addEventListener(Event.ENTER_FRAME, playReverse);

        function playReverse(event: Event): void {
            if (currentFrame == zpet) {
                stopPlayReverse();
            } else {
                prevFrame();
            }
        }

        function stopPlayReverse(): void {
            if (hasEventListener(Event.ENTER_FRAME)) {
                removeEventListener(Event.ENTER_FRAME, playReverse);
            }
        }
    } else if (event.keyCode == 39) {
        if (currentFrame < totalFrames - 1) {
            play();
        } else {
            stop();
        }
    }
}
stop();

stop();当我放入演示文稿的每个关键帧时,前进的效果非常好。问题是如何回到前一个关键帧(我也想反向播放)。我认为如果我创建一个变量(称为“zpet”)并将其设置为在每个关键帧中返回的特定帧数,那将非常容易。但它不起作用,它一直回到第 1 帧。例如,我在第 26 帧中输入zpet = 13;了从第 26 帧播放时应该说的代码,在第 13 帧停止。有什么想法可以解决这个问题吗?我会很感激的。。

4

1 回答 1

0

您可以直接从时间轴标记动画的每个关键帧,然后像这样:

function playReverse(event: Event): void
{
    prevFrame();// You can also use gotoAndStop(currentFrame - 1)
    if(currentFrameLabel != null)
        stopPlayReverse();
}

看起来更干净,而且您可以稍后使用标签值,以防您制作场景选择菜单。

于 2013-11-13T20:37:05.923 回答