【问题标题】:Is there a TweenMax equivalent in JavaJava中是否有TweenMax等价物
【发布时间】:2011-02-10 23:29:21
【问题描述】:

我对 Java 和 Android 开发还比较陌生,所以我仍然不熟悉大量可供使用的库,尤其是动画库。我来自(Flash 世界),我们可以使用多个 3rd-party 补间引擎,当我们想要以编程方式在舞台上移动东西而不依赖(非常劣质的)内置 Adob​​e 时,这些引擎让我们的生活变得非常轻松补间 API。最受欢迎的之一是 Greensock 的TweenMax

看看 Android 原生处理补间的方式,与我习惯的相比,它似乎非常繁琐。我很好奇是否有一个适用于 Android 的 TweenMax 等效库,它使动画排序同样容易在代码中编写,具有智能智能感知的好处,而不必将它们全部写在外部的 animation.xml 文件中res 文件夹。

【问题讨论】:

    标签: java android flash actionscript-3 animation


    【解决方案1】:

    很抱歉这么晚才回复这个帖子,但是您的问题有一个更独立于框架的答案:java Universal Tween Engine。

    http://code.google.com/p/java-universal-tween-engine/

    这个库最初是作为在任何 Java 项目中模仿 TweenMax/Lite 功能的一种方式,最终成为一个完整的、独立的补间引擎。它针对 Android 进行了优化(无动态分配),但几乎可以在每个 Java 项目中使用,如 Swing UIOpenGL 游戏 ...

    如果你来自 TweenMax 世界,你不应该迷路,因为基本语法非常相似:

    Tween.to(myObject, POSITION, 1000).target(20, 30).ease(Elastic.OUT).start(myManager);
    

    虽然时间线有些不同,但仍然很容易理解:

    Timeline.createSequence()
        // First, set all objects to their initial positions
        .push(Tween.set(...))
        .push(Tween.set(...))
        .push(Tween.set(...))
    
        // Wait 1s
        .pushPause(1000)
    
        // Move the objects around, one after the other
        .push(Tween.to(...))
        .push(Tween.to(...))
        .push(Tween.to(...))
    
        // Then, move the objects around at the same time
        .beginParallel()
            .push(Tween.to(...))
            .push(Tween.to(...))
            .push(Tween.to(...))
        .end()
    
        // And repeat the whole sequence 2 times
        .repeatYoyo(2, 500)
    
        // Let's go!
        .start(myManager);
    

    希望有帮助:)

    【讨论】:

    • 谢谢 :) 此外,您可以在此处看到它的实际效果(需要 Google Chrome 才能启用 webgl):aurelienribon.com/universal-tween-engine/gwt/demo.html 每个动画(从闪屏到启动器)都是使用 lib 完成的。由于它使用的是游戏 java-to-html 框架的 alpha 版本,因此它有点问题。
    【解决方案2】:

    您不必使用 XML 文件,您可以使用 Animation、AnimationSet 和各种 Interpolator 实现。然而,Android 3.0 提供了更强大的动画 API。

    【讨论】:

    • 感谢您的提醒。同时,我在几个地方读到你应该小心使用这些动画 API,因为它们对 CPU 的负担非常大。原生 Flash tween api 也是如此,这就是为什么 3rd 方引擎有如此强大的市场。我认为这也可能是这种情况......或者他们可能只是通过根本不依赖 Java 而只是使用 NDK 来解决问题?不过,我会看看 3.0 API。
    • 这些动画 API 做的不多,第三方引擎的 CPU 密集度不会少。
    【解决方案3】:

    实际上,我想我找到了一些接近我所要求的东西。这里有一个适用于 Android 的 Cocos2D 端口: Cocos2D for android

    它并非完全没有错误(这里主要考虑粒子系统),但它为您将使用 Greensock 的各种事情提供了广泛的动画和显示功能。它甚至还带有一个 Box2D 端口。

    【讨论】:

    • 仅供参考,这里有一个最新版本:github.com/cocos2d/cocos2d-x,但它使用NDK,而 OP 想使用 Java。另一种选择(也需要 NDK)是开放框架,它有几个插件可供选择:ofxTweener、ofxTweenzor、ofxSoso 等。
    猜你喜欢
    • 2020-09-20
    • 2011-01-17
    • 2012-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-29
    • 2013-06-21
    相关资源
    最近更新 更多