2011-02-10 95 views
4

我对Java和Android开发还比较陌生,所以我仍然不熟悉可供使用的众多库,特别是对于动画。我来自哪里(Flash世界),我们可以访问多个第三方补间引擎,这些引擎让我们的生活变得非常简单,当我们想要在不依赖内置Adobe补间API。其中最受欢迎的是Greensock的TweenMax在Java中是否有TweenMax等价物

看看Android本身处理补间的方式,与我以前的习惯相比,它显得非常麻烦。我很好奇,如果有一个TweenMax相当于Android的库,那么使动画顺序同样易于编写代码,并且具有智能智能感知的好处,而不必将它们全部写入到外部animation.xml文件中res文件夹。

回答

7

对不起,最近回复到这个主题,但有一个更独立于框架的答案:Java Universal Tween Engine。

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

enter image description here

这个库开始,以此来模仿任何Java项目TweenMax /精简版的功能,并最终作为一个完整的,独立的,补间引擎。它是为的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); 

希望帮助:)

1

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

+0

感谢您的提醒。与此同时,我在几处地方读到你应该小心使用这些动画API,因为它们对CPU征税非常激烈。本地Flash Tween API也是如此,这就是为什么第三方引擎有如此强大的市场。我认为这也可能是这种情况......或者他们只是通过不依赖Java来解决问题,而只是简单地使用NDK呢?不过,我会看看3.0 API。 – scriptocalypse 2011-02-11 04:00:51

+0

这些动画API没有太多的工作,第三方引擎不会占用更少的CPU资源。 – 2011-02-11 06:57:00

1

其实,我想我已经找到了一些接近我所要求的东西。还有的Cocos2D的为Android端口这里: Cocos2D for android

这不是完全没有缺陷(这里想到粒子系统的居多),但它提供了广泛的动画和显示功能的各种各样的事情,你会使用Greensock for。它甚至还带有一个Box2D端口。

+0

仅供参考,这里有一个最新版本:https://github.com/cocos2d/cocos2d-x,但它使用[NDK](http://developer.android.com/tools/sdk/ndk /index.html#Contents),OP想要使用Java代替。另一种方法(也需要NDK)是Open Frameworks,它有几个插件可供选择:ofxTweener,ofxTweenzor,ofxSoso等。 – Gabor 2013-08-06 09:36:46

相关问题