【问题标题】:how to add frames to timeline dynamically?如何动态地将帧添加到时间轴?
【发布时间】:2016-05-18 09:28:10
【问题描述】:

不想问,但我实际上需要向纯 AS3 项目动态添加 240 帧,然后在最后一帧上添加停止帧。

是的,我们回到了 2009 年。

为什么?

因为我构建的动态、类驱动的 PureAS3 应用程序 (swf) 正在交付给内部系统的不同媒体所有者(我不骗你)检查所有 Flash 10 秒的帧(因此 240)并检查一个'stop();'。

收到的任何帮助 - 我假设这是可能的,但在网上画了一个空白 - 主要是很多人(正确地)再次使用时间线提供建议。

丰富

【问题讨论】:

  • 如何检查?
  • 响应很简单,您不能将帧动态添加到 MovieClip 周期,没有变通办法,没有肮脏的 hack,您就是不能。
  • @null 我不知道,这是一个商业媒体交付系统,他们已经运行了多年,但我没有接触过它的工作原理。我刚刚确信确实如此。
  • @BotMaster 谢谢,我认为可能是这种情况,但你永远不知道多年来人们对 Flash 进行了黑客攻击,如果它是那些直到现在似乎毫无意义的无证或鲜为人知的功能之一。只是生活在希望中。
  • 你说你有一个纯AS3项目。你是如何构建你的项目的?

标签: actionscript-3 flash dynamic frames timeline


【解决方案1】:

我个人认为,如果你没有利用时间线,你就太努力了。只是在你可以放在舞台上的东西的定位和尺寸方面所涉及的所有苦差事感觉就像是在浪费大量时间。我认为 Adob​​e 在 Flash 9 发布期间如此专注于 Flex 以至于他们从未向人们展示如何保持时间线并且仍然拥有基于类的良好架构是一种耻辱。但那是桥下的水,你拥有你所拥有的。

您是否尝试过仅延长时间线并在末尾放置一个 stop() 帧脚本?无论如何,如果舞台上什么都没有,添加更多无的帧应该不会导致问题,也不应该在没有结束时停止。

您可以尝试的另一件事是在第 1 帧上有一个带有 stop() 的主时间线。在第 1 帧上放置一个 MC,该 MC 具有您当前使用的类作为您的文档类指定为其类。只要你没有在类达到 root 或试图了解他们不应该做的事情的地方做任何奇怪的事情,那也应该有效。

【讨论】:

  • 嗨@Amy,我认为时间轴与单帧应用程序是适合这项工作的工具。这个特定的应用程序是一个 PureAS3 项目,因此没有将脚本添加到的时间线。直到现在也不需要一个,在这种情况下实际上会使构建时间复杂化,因为它也是数据驱动的等等。时间线要求纯粹是一个无范围的后期构建最后一分钟请求,因此为什么它是一个扳手。有趣的是,你的最后一段是我刚刚发送过来的,看看它是否有效。等着看他们是否注意到 currentFrame 计数没有移动或其他一些障碍。谢谢,R
【解决方案2】:

创建一个新的 SWF 作为包装器,在它的主时间线上有这 240 帧,第 241 帧应该包含一个 stop() 调用和您项目的 Main 类的一个实例。此 SWF 应使用他们拥有的任何引擎进行验证,但保留纯 AS 驱动项目的所有功能。

【讨论】:

  • 感谢 Vesper,我们将尝试从这个角度进行工作,但目前他们要求的是单个 swf。很可能我需要使用带有时间线的 FLA 基础对其进行返工,但这同样不理想。
  • @Visualife 建议将生成单个 SWF。那是 240 帧 + 你的代码的主类现在实例化在第 241 帧你知道..import myProject; 和后来的var proj : myProject = new myProject(); 等等等等..
  • @VC.One 谢谢,我现在要试一试,因为包装器的想法被拒绝了。遗憾的是,未记录的“addFrameScript()”仅适用于现有帧,而不是将帧增加到该长度。
  • @Vesper 我已将您的答案标记为正确,因为它实际上并没有回答问题,考虑到我所追求的实际上是不可能的,这是最好的解决方案。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-06
  • 2011-01-15
  • 2020-01-13
  • 1970-01-01
相关资源
最近更新 更多