Skip to content


Fully Completely Working Open From Computer

Open From Computer works now!!!!!!!!!!!!!!!!!!!!!!

Posted in Ajax Animator.


Improved Tweening Engine Stability

as you probably know, there is a new tweening engine being used. This new one got rid of all the random anomaly checks that report when random errors occur. The error checks are now run more verbosely than eva!

Posted in Ajax Animator.

Tagged with .


Changed Email Sender

You will no longer get your activation emails from ajaxanimator@gmail.com, but rather antimatter15.blog@gmail.com

Posted in Ajax Animator, Meta.


Installed save_proxy.php

It won’t fail now. Things should work fine.

Posted in Ajax Animator.


Save → Computer Support

No time, copied from SVN commit message:

Working Menu->File->Save->To Computer button. Does ajax request to save_proxy.php (new file) and if the request fails to output the correct stuff, it falls back to the local client based dataURI method (btw, won’t work on IE).

BTW. this has been here for a few revisions already, but those grey boxes that fall from the sky, well, you can click on them to close them. nifty feature eh?

It currently will fail and definitively will fall back to the dataURI method now because I haven’t installed the new save_proxy.php on the testing server. Will do that tomorrrow, I dont have time now.

Posted in Ajax Animator.


Tweening Rewrite

I rewrote the tweening engine. Through some random testing, its not too different in speed from the old one:

26 28
25 29
27 27
25 27
13 29
27 27
26 27
25 14
32 18
25 25
25 13
26 15
27 16
22 27
25 16
25 15
27 26
14 26
13 27
25 15
25 25

Somehow, nothing’s very consistant. The new one looks a bit slower (btw, the first one is the old one, the latter is the new). But its negligable. Its much better, much more reliable in terms of tweening results.

There were two ways to handle the rewrite, from the file-format level, where modifications are from the way shapes are exported in Ax.dumpshapes() (a function shared in part with onlypaths). This would affect virtually everything and cause a format incompatability the current format. Or the other way would be at the tween engine level, where it would have to do an extra step in organizing things before processing. I chose the easier (and more transparent) one, being the latter. It will continue having full support for current animations, and for the most part will render things the exact same (See previous post for details).

In the process of rewriting the engine, I split tween.js (which wasnt too big anyway) into two files: tween.js and tween_core.js. Some of the tween.js functions aren’t going to be needed in a standalone player, and I want the ability to use the same files for a standalone player as the core project. Some of the tween.js functions (Ax.tween, Ax.getSFTween) are only needed in the app and are not really “core”.

The core functions are prettymuch the same, except the tweening engine, which is confined to a single tween. What the tween engine does is to arrange the data and feed it to the “sub-core” of the system which does the actual mathematical tweening.

That “sub-core” has not changed at all during the rewrite, but the way the shapes are fed in to this has changed dramatically. Its no longer an unordered list where you simply “hope” that things are organized well (btw, this works fine as long as shapes aren’t being deleted). Here, shapes are organized by their unique identifier (ID) where they actually serve a purpose for identifying a shape.

To do this, you have to first loop through the unordered array list and put them in an object identified by their id attribute. You loop through the object with a for(… in …) loop and do the tweening magic. Then you have to loop over again and put it back in an unordered list and return it.

its a great deal more complicated than the old one, which was pretty lightweight, but things don’t output right. Its sort of like this project of mine where I had to calculate the median. I built a very simple one-liner to do the job, for the most part, it worked fine, but it was slightly off, and I ended up abandoning it.

Posted in Ajax Animator.


Fully Working History (Includes Undo/Redo)

I got Redo/Undo and history working fine now. Its pretty cool.

Posted in Ajax Animator.


Tween Engine

Actually, I don’t need to redesign the tweening engine.

Posted in Ajax Animator.


New Tweening Engine?

I may have to create a new tweening engine for the Ajax Animator. It will end up having to change the file format and several others as well (It will be similar enough to the current system, so a conversion utility would be simple).

The necessity of this arises from a very simple design issue…. and my laziness. I designed the ALEON format to use this type of format, but it was abandoned early in the implementation as the OPF system was much simpler.

The idea was that a frame would be stored as an object with the shape id as the identifier such as:

{"shape:blah-blah-blah":{type: "rect", stuff...}}

In practice, it ended up something like

[{id: "shape:blah-blah-blah", type: "rect", stuff...}]

which may be somewhat simpler to implement, and is a bit more logical/consistant, and perfectly fine in an OnlyPaths environment, it is not as good for a tweening environment.

To demonstrate the issues with this design, try making an animation in the ajax animator with 4 shapes. Now go to another frame, and delete the middle one. What happens, is that the frame doesn’t disappear, but rather, the deleted shape gets morphed into the next shape, and the last shape is deleted.

Posted in Ajax Animator.


History!

I got history to work. Undo/Redo don’t work yet, and I’m not sure if reverting actually works yet.

Posted in Ajax Animator.