Thanks guys.

The Esoteric Framework is a project I've been working on when I have
time for about a year and a half now. It has a website (http://
framework.esotericorp.com/), but unfortunately I don't have time to
update it so the info is outdated compared to current builds. When the
new version is usable I will move the project to github or google code
so it's easier to update.

I started it because I felt like a lot of work I do in Flash is
repetitive, and I felt like I could automate a lot of it. I wanted
something between Flash and Flex. I used it for the first time for a
commercial project not too long ago, and while I think it saved me a
lot a time, I felt like a lot of things needed to be changed before it
truly became a useful tool. So I rewrote a lot of code, tried to get
rid of the non-essential stuff, and my goal is to have a pretty solid
version that does basic 2D/3D functionality but can be extended via an
SDK.

You define applications in XML files, which can be loaded during
runtime, or you can embed them if you'd rather have a nicely packed
SWF. It has 'bindings' similar to FLEX (I try to make almost
everything bindable/tweenable), and a scripting language which is
pretty much a subset of JavaScript. Obviously the scripting language
is a lot slower than ActionScript, so the idea is to develop CPU
intensive parts in AS3 then provide high level functions to be used by
the scripting language. A very basic application would look something
like this:

<MyApplication>
    <BitmapFile url="image.png" x="{-.5 * this.bitmapWidth + mouseX}"
y="{-.5 * this.bitmapHeight + mouseY}" />
</MyApplication>

This will basically load an image and move it under the mouse cursor
as it moves. As you can see 'bindings' detect when a value is updated
and updates the attributes appropriately. So it avoids having to write
event listeners for simple stuff.

I also added a simple framework for the scripting language which is
inspired by the JavaScript framework jQuery, so you can manipulate
nodes easily. For instance you could do something like:

$('* [kind=BitmapFile]').animate('alpha', 0, 2);

That would basically fade out all the images in the application. For
3D functionality I moved from PaperVision3D to Away3D 10 lite and it's
been working great so far. It's fun to tween 3D objects using the
scripting language with just a few line of codes.

I wrote a simple SDK to create custom elements. In short you define
the attributes of your element in a JSON file, then launch the code
generator (written in Python) that will generate an AS3 base class for
your element which you can extend as you want. The base class will
already take care of all the bindings and the magical stuff for you so
you don't have to worry about that.

Right now I feel like there's quite a bit of work left, but when it's
ready I'll release all the source code so people can play with it if
they are interested.

Stephan

On Feb 5, 10:41 am, Fabrice <[email protected]> wrote:
> Hey Stephan,
> Why don't you tell us a bit more about the Esoteric framework...?
> Looks very promissing...
>
> Fabrice
>
> On Feb 3, 5:48 pm, stephan <[email protected]> wrote:
>
>
>
> > Hi,
>
> > Great work on the Flash 10 branch guys.
>
> > I noticed you guys use the root perspective projection to compute the
> > camera projection. So changing zoom/focus will change the field of
> > view of the root as well. So if I have display objects outside Away3D
> > the field of view will affect those as well.
>
> > I've been investigating how the matrix used by
> > flash.geom.Utils3D.projectVectors() works, and it's pretty different
> > from your usual OpenGL/DirectX projection matrix. I was able to figure
> > how it works, and how to create projection matrices without relying on
> > PerspectiveProjection, including off center projections. If you are
> > interested I posted some code here:
>
> >http://stephan83.com/10910707
>
> > Maybe you already know all of this, but if it can be useful feel free
> > to use it!
>
> > Thanks again,
>
> > Stephan Florquin

Reply via email to