【问题标题】:Flash drawing in Actionscript - is it quicker than attachMovie?Actionscript 中的 Flash 绘图 - 它比 attachMovie 快吗?
【发布时间】:2012-10-14 16:30:14
【问题描述】:

我有一个包含歌曲列表的 Flash 应用程序。它使用 Actionscript 单独绘制每一行。现在,当歌曲数量很大时,应用程序会在浏览器中速度较慢的机器上崩溃

A script is causing Adobe Flash Player to run slowly. If it continues to run, your computer may become unresponsive. Do you want to abort the script?

现在我想知道,在库中手动将每首歌曲的行创建为MovieClip,而不是绘制整行,而只使用attachMovie,是否会减少功耗/CPU/内存密集型?

我尝试在 Actionscript 中绘制一次该行,然后尝试 duplicateMovieClip 但这不会将绘图复制过来。

我使用LoadVars 检索数据,这需要一些时间,具体取决于数据量,但时间无关紧要,然后我使用Sephiroth Serializer 类对数据进行反序列化,然后开始绘制每一行.

请告诉我,感谢您的帮助。

【问题讨论】:

  • 添加或复制电影剪辑不应该是原因,可能是由于您填充所有歌曲的方式......更多关于代码的信息会有所帮助。
  • @loxxy 我已经更新了代码的简短描述,如果信息足够,请告诉我。
  • 您在这里使用MovieClip 有什么原因吗?虽然我怀疑它会有多大帮助,但MovieClip 并不是轻量级的,因为它包含时间线功能。如果您不需要时间线,永远不要使用MovieClip。始终使用SpriteMovieClip 扩展并添加了时间线功能。 编辑:刚刚意识到这是 AS2。正如 Jason Sturges 所说,AS3 的速度明显更快。
  • ActionScript 3 runs significantly faster than legacy ActionScript code,轻松快 10 倍。在不了解您“绘制每一行”的内容的情况下,对像素数据的副本进行 blitting,确保在后台没有绘制,使用异步模式或跨帧节流,展平显示列表层次结构,以及检查迭代循环将是下一步。
  • 对我来说,您使用的某种类型的循环似乎存在问题。我会想象循环是抓取内容并将其放置到您的页面上。我很想看看你如何使用duplicateMovieClip()

标签: flash actionscript adobe actionscript-2


【解决方案1】:

当发生无限循环或给定循环执行时间过长时,会显示此警报。在 10 年的 ActionScript 经验中,我无法想象你会在导致它运行如此缓慢的循环中做什么,所以我猜你的问题只是你有一个无限循环运行(非常很容易做到,如果你不小心的话——我们都去过那里)。

请将完整的循环代码贴出来,以便我们明确回答。

【讨论】:

    猜你喜欢
    • 2010-11-29
    • 1970-01-01
    • 2010-09-14
    • 2011-02-19
    • 2010-09-12
    • 2011-07-19
    • 1970-01-01
    • 2010-12-21
    • 2011-04-04
    相关资源
    最近更新 更多