ani is an animation library based on robert penners easing equations. basically it does the same (or less) like the other libraries e.g. Tween and Shapetween ... but my focus was more to create a very easy and fast to use library from the programmers point of view (undergraduate students). from my experience in class and workshops i know, it never can't be simple enough. at the time i started with the lib (end of dec) i did first a little revision of all existing libs in the processing (Shapetween, tween, motion) and flash (caurina, gtween, greensock/tweenlite) world. for me the best one was the library by greensock aka tweenlite and tweenmax. so ani is my attempt to bring the things i liked (mostly from tweenlite) to the processing coding feeling.
i've finished (hopefully) most of the coding, so i thought this would be good time to get a feedback from the processing community. but as usual this is just half of the work ... my next step is to do proper examples, demos, clean the source code and documentation in general.
features:
create animations in various ways: Code:Ani.to(this, 1.0, "x", mouseX, Ani.BOUNCE_OUT);
//this single line will do the whole job :)
// or if you would like to keep a reference for a later use, there are this two options
Ani diameterAni = Ani.to(this, 1.5, "diameter", 150, Ani.EXPO_IN_OUT);
Ani diameterAni = new Ani(this, 1.5, "diameter", 150, Ani.EXPO_IN_OUT);
to and from Code:
Ani.from(this, 1.0, "x", 300, Ani.BOUNCE_OUT);
mimik flash property list behaviour Code:Ani.to(this, 2, 3, "x:256,y:500, w:200,h:205", Ani.SINE_OUT);
flexible method and constructor parameters Code:
// minimal parameters
Ani.to(obj, 1.0, "x", 100);
// ... lots of other possibilties in beetween
// maximal parameters
Ani.to(this, 1.5, 3, "diameter", 150, Ani.EXPO_IN_OUT, "onStart:itsStarted, onFinish:newRandomDiameter");
callbacks Code:Ani.to(this, 1.5, "diameter", 150, Ani.EXPO_IN_OUT, "onStart:itsStarted, onFinish:newRandomDiameter");
decided control with lots of methodsend, getBegin, getDurationDelay, getDurationEasing, getDurationTotal, getEnd, getId, getPosition, isDelaying, isEasing, isFinished, isPaused, isRepeating, noRepeat, noReverse, pause, play, pre, repeat, repeat, resume, reverse, seek, setBegin, setDurationDelay, setDurationEasing, setEasing, setEnd, start, swapBeginEnd
overwite manager of all on going animationsconsideration of inherited fields and methodsaniSequence (timeline) with parallel and sequential animationsadd, beginAdd, beginStep, endAdd, endStep, getDuration, getPosition, isFinished, isPlaying, pause, play, seek, start
...
a preview with first examples can be downloaded here:
http://www.looksgood.de/libraries/Ani/Ani.zipthe website is going to be:
http://www.looksgood.de/libraries/Ani/ (nothing at the moment)
so far. any feedback is very welcome!
benedikt
ps: this is my sunday afternoon-puzzle-around project
so don't expect the documentation, source code, website, examples coming very fast.