代码之家  ›  专栏  ›  技术社区  ›  Josh

使用ActionScript3分组翻转效果

  •  0
  • Josh  · 技术社区  · 15 年前

    我对ActionScript3项目有以下问题。

    我有一组按钮通过坐在一个保持精灵的班级设置。

    当我滚动这些按钮中的一个时,我会循环浏览保持架中的所有按钮,并运行tweenlite以在alpha到.4之间切换,除非名称与当前活动的按钮匹配。

    当我卷展栏时,我再次通过tweenlite tween将所有按钮重置回alpha 1。

    这在大多数情况下都很有效。我的问题如下:

    • 当我从一个按钮直接滚动到另一个按钮时,会有很多闪烁。
    • 有时当我滚动到另一个按钮时,它会淡入然后淡出。
    • 我有一个例子,当我不把所有的按钮返回到alpha 1时,我需要把它们返回到初始状态alpha。

    我试过使用tweengroup,但这似乎也没有帮助。

    如果你需要更多的细节,请告诉我。代码被集成到许多其他东西中,这就是为什么我没有发布它,但如果需要,我可以把一些东西放在一起。

    谢谢。

    乔希

    2 回复  |  直到 15 年前
        1
  •  1
  •   back2dos    15 年前

    在我看来,你应该为那些按钮创建一个类,它在内部维护状态…所以从外面来说,你只需要调用两种方法 fadeDown fadeUp ,在按钮上…按钮本身知道,它们的alhpa是什么,如果有一个tween运行等。他们总是会杀死自己的吐温(如果是正确的吐温,也可以继续下去)。然后开始正确的动画以获得正确的内部状态的视觉表示…您可以考虑使用 state pattern 关于那件事…保持代码整洁…(只需使用私有类就不会有太多的文件)……

    另外,这方面的一个好处是,动画与逻辑是分离的,因此您可以在逻辑上下文之外轻松地重用按钮,和/或更改动画概念(例如,模糊按钮而不是淡出它们),而不会对逻辑产生任何影响…

    希望这有帮助…;)

    尔兹

    后台操作系统

        2
  •  0
  •   Carlo    15 年前

    为了避免闪烁,您可以在tweens上稍微延迟一点,让它们互相覆盖(检查tweenlite页面)。

    对于将它们返回到初始alpha的问题,简单的if不起作用?