【问题标题】:Alpha 0 vs Visible = falseAlpha 0 与可见 = 假
【发布时间】:2012-11-09 16:41:17
【问题描述】:

我正在用 Flash 开发一个网站,其中包含一些动画(哦,是的),但我怀疑我获得更好性能的方式。其中一些动画的 alpha 从 1 变为 0。所以我有两种方法:

  • 当然是补间,但是对象仍保留在 alpha = 0 的舞台上,是否还有一些处理工作?还是 Flash 很聪明,只是忽略了对象?
  • 手动设置,当 alpha 低于 0.1 时,我设置了 visible = 0,仅此而已。但我想知道补间是否比手工制作的函数快...

有什么意见吗?

【问题讨论】:

  • 将 visible 设置为 false 会更快——这样所有事件监听器都会被忽略
  • 您是否已经在补间并且只是询问将可见属性设置为现有补间 VS 正在检查 alpha
  • 仅供参考,您应该接受一个您认为最能满足您的问题的答案(如果不满意,请评论您还想解释什么)。对您认为有用的任何答案进行投票也是一种很好的做法。

标签: actionscript-3 flash animation tween


【解决方案1】:

即使 alpha 设置为零,Flash 也会计算显示列表上的显示对象。

Alpha 决定剪辑的不透明度,而可见决定剪辑是否由播放器渲染。

因此,如果您不需要显示或交互,则 visible=false 性能更高。

【讨论】:

    【解决方案2】:

    当一个项目的alpha 值为0 时,它仍然由玩家渲染,仍然调度鼠标/交互事件,并且仍然影响它的父项的边界。

    当您将visible 设置为false 时,玩家不会按说法渲染对象,也不会调度鼠标/交互事件。但是,它仍然会影响父级的边界。

    如果您真的想提高效率,我建议您完全从显示列表中删除该项目。例如。 removeChild(item); 那么它不再影响父级的边界,并且真正不会渲染。

    关于补间,对于任何库,当补间完成或从显示列表中删除时,很容易将可见设置为 false。 greensocks 补间库有一个特殊的参数来实际执行此操作 - 而不是使用 alpha 属性,而是使用 autoAlpha。当值下降到零时,它会将可见性设置为 false。如果高于 0,它会翻转回 true。

    补间是否比手工制作的函数快取决于补间和手工制作的函数的质量。大多数补间库都非常高效,我不会担心。

    【讨论】:

    • 好点,我没有考虑鼠标和其他交互。在其他情况下,可见性也用于测试或不测试碰撞。它接缝了经典补间对于简单和本地化的对象很有用,否则我们必须编写代码或购买一些好的库。
    【解决方案3】:

    一定要使用 Greensock 库。

    要为 alpha 设置动画,然后使其不可见,请执行以下操作:

    TweenLite.to(movieClip, 0.5, { autoAlpha: 0 });
    

    有关 Greensock 补间引擎的更多信息: http://www.greensock.com/tweenlite/

    如果显示列表上有太多对象并且影响性能,您仍然可以将对象移出“渲染”区域,(如果我是正确的)2000px 离开舞台,那么你应该这样做:

    TweenLite.to(movieClip, 0.5, {autoAlpha: 0, onComplete: function() {
        movieClip.x = movieClip.y = 10000;
    }});
    

    希望对你有帮助 抢

    【讨论】:

    • 如果使用 TweenLite,您实际上可以使用内置的 autoAlpha 属性代替 alpha。那么你就不必创建一个 onComplete 函数了。
    • @LondonDrugs_MediaServices,哦,我忘了,谢谢提醒!我更新了我的答案。干杯!
    • 当有人鼓励其他人使用它们时,我总是喜欢提到有关 greensock 补间库的一件事:如果用于任何向最终用户收费的项目,它们确实需要您购买许可证使用您放入的应用程序。
    • 嗯,有时我们必须为此付出代价。了解这个库很好,因为如果有很多元素,可以方便地提高站点性能。它接缝不需要(使用 TweenLite)将对象收起来,alpha 为 0,可见 false 是自动的。
    • @GustavoPinent - 同意!我多年来一直在我的 ActionScript 项目中使用 Greensock 引擎,最近几周我一直在试验 JavaScript 版本,它们几乎相同,而且都很棒!这些库的文档非常有用和有帮助,所以请尽情享受吧:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多