flash - ActionScript 3 中的 .currentFrame

标签 flash actionscript-3 actionscript

我之前问过类似的问题并得到了很好的答复,所以如果这有点令人沮丧,我深表歉意。希望这会很快。我正在设计一个交互式 Flash 教程,以努力解释一个复杂的生物学问题,并且我已经构建了时间轴,以便不超过两帧和四层。我之前在舞台时间轴上设计过这个,但它变得非常困惑,并且出现了一些问题,所以我决定必须以这种方式重做。

它由三个主要部分组成 - 首先分两段淡入的标题,然后是两个按钮(在完全淡入之前被禁用),最后是在循环中无限期淡入和淡出的分子动画。然后,该页面将保持环境状态,直到用户单击其中一个按钮。

主时间轴上有四层 - 操作、按钮、分子和标题。每个都有相关的图像和动画。

我想对其进行编码,以便每个时间线依次播放,但我很难通过 AS3 访问其他时间线。

目前我在操作层中有这个:

import flash.events.Event;

NRPSText_mc.addEventListener(Event.ENTER_FRAME, FadeIn);

function FadeIn(event:Event):void
{
    if (MovieClip(this.root).currentFrame > 0) {
        NRPSText_mc.gotoAndPlay("NRPSFadeIn")
    }
}

ColourButton_mc.addEventListener(Event.ENTER_FRAME, BtnFadeIn);

function BtnFadeIn(event:Event):void
{
    if (NRPSText_mc.currentFrame == 30) {
        ColourButton_mc.gotoAndPlay("ButtonPress")
    }
}

从这里应该可以清楚地看出,我已经在每个时间轴中标记了某些事件,并且我希望它们在一个事件结束时播放。

问题是知道每个实例中的“.currentFrame”之前要放什么,但我在任何地方都找不到它!到目前为止,我已经能够使用“this”和“MovieClip(this.root)”,但我需要能够找出如何引用这些嵌入的时间线以使其工作。我已经用“trace”尝试过这些代码,它似乎工作正常,所以我认为这就是问题所在。

最佳答案

首先,如果您在主时间线上有代码而不是MovieClip(this.root).currentFrame你可以只使用 currentFrame因为您引用的是您设置脚本的对象。

第二个,这个

if (MovieClip(this.root).currentFrame > 0) {
    NRPSText_mc.gotoAndPlay("NRPSFadeIn")
}

自调用每个帧以来,只会使 NRPSText_mc 停留在“NRPSFadeIn”标签处。

第三,如果舞台上有一个影片剪辑并且已设置其实例名称,则可以通过该实例名称从父范围(主时间线)引用其时间线,就像使用 NRPSText_mc.gotoAndPlay("NRPSFadeIn") 一样。 。如果您在该影片剪辑中有一个脚本,只需使用 gotoAndPlay()currentFrame因为您与脚本位于同一个对象中。

而且你做的有点不对。常见的方法是使用时间轴动画或某种补间库,例如 TweenMax 。当您使用 Flash IDE 时,执行相同操作的正确方法如下:使用您想要的对象的任何动画创建单独的影片剪辑;将它们放在主时间轴上,该时间轴有自己的涉及这些剪辑的动画;在您想要控制内部剪辑的任何帧上使用 stop() 设置单独的脚本, gotoAndPlay()

如果您想在剪辑播放完毕时收到通知,请使用 AS3 事件。例如,您有一个名为 mc 的影片剪辑,在最后一帧添加脚本dispatchEvent(new Event("stopped!")); stop();并在主时间线上

mc.addEventListener("stopped!", listener);
function listener(event:Event):void {
  trace("mc stopped!");
}

这样比每次输入帧事件检查帧号要容易得多。

关于flash - ActionScript 3 中的 .currentFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9370058/

相关文章:

actionscript-3 - Flex 条件编译错误

flash - AS3 中的 URL 编码变量?

Flash:如何为外部加载的 SWF 暂时禁用或阻止所有鼠标事件

Flash/Actionscript CPU 分析器

php - 每 3 秒将数据从 Flash 发送到 php

javascript - 有没有办法使用pdf.js为pdf渲染编写javascript事件

flash - AS3 : Difference between target vs currentTarget

flash - 使用 AS3 在 Flash 中模拟 Ubuntu 窗口效果

apache-flex - 在 ActionScript 中动态创建 Flex 组件

Flash 视频 FPS - 在某些浏览器中播放速度过快