Cheers guys!

The document mainly outlines the changes between Away 3.x and this new
solution, so not so much the transition from ResourceManager (the
previous alpha solution that this one replaces) to AssetLibrary.

However, the ResourceManager really didn't do much before, so I don't
think that modifying your code for the AssetLibrary will require much
work once the general understanding is there (and that's what I'm
trying to provide through the document.) I know this from having
changed all the examples very quickly from ResourceManager to Loader3D
(which in essence is very similar to the AssetLibrary.)

Since it's not in the document, let me quickly outline the reason for
ditching the ResourceManager. With the ResourceManager we tried to do
some pretty magical things with returning proxy objects for
everything, and using the same method to load and retrieve an already
loaded resource. As we were implementing more complex file formats
(especially AWD and COLLADA) it became clear that this will not work
throughout, so we decided to ditch it in favor of a single approach
which would always work (first load, and retrieve from library only
once loaded.)

To clearly mark that we were moving away from the ResourceManager (and
the fact that we now have a library-like functionality) we decided to
rename the new manager class AssetLibrary, which is what you'll be
working with from now on.

Another important change is something that is indeed mentioned in the
document, but deserves another mention, because IT'S VERY IMPORTANT!
Away4 right now adds about 40kb to your SWF file, which is really
neat. However, with the ResourceManager, all the parsers were
forcefully included in the app adding almost 100kb. That's 200% extra
weight for parsers that you may or may not use! We decided to remove
the hard-coded parsers in favor of a plug-in approach, which is really
nice for file size (and to some extent file format detection
performance) but it does require you to do the following at an early
point in your app, e.g. if you want to use AWD and OBJ files:

AssetLibrary.enableParser(AWDParser);
AssetLibrary.enableParser(OBJParser);

If you don't care about file size, and just don't want to think about
what file formats you'll be using, you can use a short-hand to add all
the bundled parsers, which is essentially what happened automatically
in the ResourceManager:

AssetLibrary.enableParsers(Parsers.ALL_BUNDLED);

One of the above needs to happen before the first load in your app is
started.

You can use the enableParser() set of methods on AssetLibrary,
AssetLoader, Loader3D or SingleFileLoader (internal class) and they
will all end up in the same place, so if you add the above line of
code once in your app, you can then use automatic file detection in
any or all of the AssetLibrary, AssetLoader and Loader3D.


I was expecting more questions to be honest, so please don't be shy if
you are wondering anything. :)


Cheers
/R

On May 6, 8:59 am, Apprentice <[email protected]> wrote:
> Thanks for letting us know :)
> And for putting a document online which describes the changes in depth
> (which I have yet to read carefully).
>
> On 5 mei, 20:01, Richard Olsson <[email protected]> wrote:
>
>
>
>
>
>
>
> > Hello Away3D community!
>
> > This is a heads up that in a moment, I will be pushing changes to the 
> > GitHub repository (SVN will follow in the next couple of days) that will 
> > likely break any code that you have that uses Broomstick (Away3D 4.0 
> > alpha). This is because of some major incompatible changes that we're 
> > making to the way that assets are loaded and managed in Away3D 4.0. (In the 
> > unlikely event that your code doesn't load assets at all, it might be 
> > unaffected.)
>
> > We wanted to make these changes right now, while Away3D is still in alpha, 
> > and we believe strongly that this is the best loading framework that we 
> > have ever had in Away3D (and probably better than most if not all competing 
> > engines out there.)
>
> > The short version is that we have removed the ResourceManager (which you 
> > are probably currently using to load assets) and replaced it with three 
> > different classes that can be used for loading: The AssetLibrary (with 
> > asset management features), the AssetLoader (for simple loading of files 
> > including dependencies) and the Loader3D (for easily loading assets into a 
> > scene.)
>
> > For those interested in a slightly longer description of the new loading 
> > framework, I have attached a five page PDF outlining the design principles, 
> > features and basic usage of the new loading classes. We hope this will ease 
> > your transition while waiting for proper documentation.
>
> > Remember that Away3D 4 is still alpha, and things might still change, but 
> > we feel a lot more comfortable with the new solution, and I think that we 
> > will be able to keep it more or less stable through to the final release of 
> > Away3D 4.0.
>
> > The examples have been updated as well (all apart from the ones that use 
> > MD5, so those are still broken. Please bear with us while we fix them.) 
> > Example code for the AssetLibrary, AssetLoader and Loader3D will be coming 
> > shortly as well.
>
> > Thanks for your understanding, and if you have any questions, comments, 
> > feature requests or bug reports: Fire away! ;)
>
> > /Richard, Away3D
>
> >  LoadingInAway4.pdf
> > 147KWeergevenDownloaden

Reply via email to