Actionscript 3.0:如何在不跳过特定帧上编写的任何代码的情况下创建快进按钮?

Posted

技术标签:

【中文标题】Actionscript 3.0:如何在不跳过特定帧上编写的任何代码的情况下创建快进按钮?【英文标题】:Actionscript 3.0: How to create fast forward button without skipping any code written on particular frame? 【发布时间】:2019-08-03 19:51:34 【问题描述】:

我已经做了 3 层。

1层如下: 我使用

创建了 fastForward 和 fastPrevious 按钮
**

> function whatever()

 frame=currentFrame+90;
this.gotoAndPlay(frame);


**

我在第 1 层的开头写下了这段代码。

第 2 层如下:

stop();

我在中间框架的某处写下了这段代码。

第 3 层如下: 只有第 3 层的按钮。

此代码使动画跳转/下一帧 90 帧,但它也跳过了在这些跳转/下一帧之间编写的代码(在第 2 层中)。如果我在第 120 帧或其他地方编写了一些代码,那么它会跳过该代码并在单击 btnfastForward 时跳转到下一个指定帧。只是想制作一些无错误的快速前进和上一个按钮。

【问题讨论】:

【参考方案1】:

很简单。您只需要遍历其间的所有帧。

function fastForward(targetFrame:int, mustPlay:Boolean = true):void

    // Go to designated frame without skipping any.
    while (currenFrame < targetFrame)
    
        nextFrame();
    

    // The "nextFrame" method also performs "stop".
    // Resume playback if needed.
    if (mustPlay)
    
        play();
    
    else
    
        stop();
    

【讨论】:

这不起作用。只有当我尝试快进时,它才会从当前帧开始播放。如果你能给我准确的答案,那就太好了。因为我对 AS3 很幼稚 @DealsProgramming 因此,请在需要时调用 fastForward。我不明白这个简单的代码可能会出现什么样的问题。 我在“nxtButton”点击时调用了这个函数,但它给出了如下错误:Argument Error-#1063 Argument count mismatch. @DealsProgramming 这意味着您传递的参数数量错误。我的函数需要 1 个强制(目标帧号,键入 int)和 1 个可选(键入 Boolean)参数。因此,您可以将其称为 fastForward(10);fastForward(99, false);。如果您传递的参数更少或更多,则会收到上述错误。 它不工作。我写的代码如下: var targetFrame; nxtBtn.addEventListener(MouseEvent.CLICK,fastForward);函数 fastForward(targetFrame:int mustPlay:Boolean=true):void

以上是关于Actionscript 3.0:如何在不跳过特定帧上编写的任何代码的情况下创建快进按钮?的主要内容,如果未能解决你的问题,请参考以下文章

如何在不跳过文档的情况下更新window.location.hash?

Xcopy共享违规,如何仍然复制而不跳过

Python:如何在迭代列表时从列表中删除元素而不跳过未来的迭代

替换字符串中的单词而不跳过空格

如何在 Spark JSON 中不跳过空值?

Unity:如何暂停执行直到函数终止,以便不跳过任何帧