Friday, September 7, 2007

Introducing NotesFX 0.1 Alpha

If you're coming to this post directly, NotesFX 0.2, which is stable here.

When I made the BlindDown demo, I thought that was the best I could do with layers in the client. Just the other day, I did a little pondering, and now I've found out how to animate size and position (sliding) in two dimensions, use/switch images from image-resources with one JS-command (and slide them in two dimensions), all contained in one(!!) subform :)

>> View demo

>> Download Demo Application

Setting borders on layers was one of the possible limitations I feared, but thanks to my good friend, "Google Search", I found this gem by Jane Griscti.

The biggest problem with the current version of NotesFX is that it seems to crash the JS-engine in the Notes Client. When this error occurs (after running 5-6 demos), you have to KillNotes.exe/start Notes again to run more demos, since Notes doesn't seem to have trash management for JS in the client.

I'm planning to look at acceleration in movement/size, and see what I can do with that in an upcoming version. Not sure when/if it is possible to have these effects without getting memory leaks (which is what I think occurs).

If you're downloading/running the demoapp:

You're going to have to kill Notes!! (the JS-engine crashes)

The demo-form is named "DemoAnimation". Open it in the Client, and click the different actions to see demos of effects.

The JS is really messy, but if I find a way to do effects, and not overload Notes, I may clean up the code, and document usage of the JS "classes".

Real-life usage (if/when stable/usable):
If someone is only saving/not closing the window, slide in message, "Document has been saved.", slide out.
Maybe small blind-up/down-effects combined with hide-whens on forms.
Popping in please-wait images before running something heavy.


Nate said...

I'm working with the Alpha, and can't seem to adjust the sizing speed.

I'm reachable on AIM at caveatemptor27

Tommy Valand said...

The alpha is mostly a result of headscratching, swearing for messing up the layers for the nth time, plus a little bit of thought.

It's nowhere near having an "API" of sorts :)

Speed and accelleration is one of the things I will be looking at.

As you can see from the demo, Im using one field per axis.

Setting fields/concatenating strings 100++ times a second is probably one of the biggest limitations when it comes to keeping movement smooth and at the same time having an acceptable speed. It is probably also one of the reasons for memory problems. Can you think of other ways to acheive the same thing?

I haven't been able to resize images without closing/reopening the form. If that was possible, it would probably be easier to achieve speed and smoothness, and at the same time avoiding instability.