通过箭头进行动画演示导航 - AS3



我是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 中放入了从帧 26 播放时应该说的代码zpet = 13;在帧 13 停止。有什么想法可以解决这个问题吗?我真的很感激。

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

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

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

相关内容

  • 没有找到相关文章

最新更新