Gaia Flash Framework – My Experience

I’ve been a bit busy over the last few months. Here’s what I’ve been up to…

I’ve moved to the UK
I’ve travelled home again for a family reunion
I’ve read a good portion of Moock’s Essential ActionScript 3.0
I’ve drunk more Guinness than I care to (or can) remember in Ireland
I’ve sold a car
I’ve worked on my first AS3 site
I’ve used the Gaia Flash Framework

The last point is obviously what I’d like to delve in to a bit more.

For those of you that aren’t aware (like myself about 3 months ago) what the Gaia Flash Framework is, you can find out more at Steven Sacks comprehensive website – http://www.gaiaflashframework.com. I only stumbled upon the Framework as a result of someone else (can’t remember who it was now, but thanks!) posting about it on their blog.

In essence it’s a Framework that takes a lot of the leg work out of creating page based Flash sites. By Page based I mean sites that have a fairly standard navigation hierarchy. It can be used for more complex projects, though I found I struggled against the Framework more than it helped me some of the time.

The project I decided to use it on was for the SBS Australia Documentary website – mY Generation

The main issues I came up against in using the Framework for this site were the following:

  • I couldn’t have two pages loaded on the screen from separate branches at the same time. So If I wanted a video from one section to remain visible on screen while the user navigated to the “TELL A FRIEND” section I couldn’t do this due to the way pages have to unload if there not part of the parent page node
  • Using the transition engine, although powerful, quickly became very convoluted and confusing when testing the preloading of pages and assets. Though I suspect I found this as the Framework wasn’t quite suited to this type of project
  • The file size of the entire project was larger than I would’ve preferred as each page had to have it’s own swf associated with it. This meant not easily being able to share assets like fonts amongst pages. This was partially addressed in later versions of the Framework, so I will have to see if I can utilise this functionality next time around.
  • Later on in the project new releases of the Framework became available that significantly changed the implementation of some of the Frameworks features. This made it very difficult for me to upgrade and get the benefit of the bug fixes that were made

On the up side, it’s author Steven Sacks mustn’t spend a great deal of time sleeping as he seems to hold down a full time job whilst at the same time rapidly releasing new versions of the Framework and responding with very lengthy and informative posts on the forum. The documentation is also very good, though there were a few things missing which threw me for a loop (though most users probably wouldn’t have experienced the same issues as I was pushing the boundary’s of what the Framework was capable of). The documentation also gets updated very frequently with issues that users are experiencing in the forums.

I didn’t get to use the SEO capabilities of the Framework, but am finishing up my “new” (it’s been 2 years in the making) website now and am contemplating porting it all across to Gaia just for this 1 feature.

So check out the Framework, check out the SBS site, and let us know if you’ve had any experience with Gaia.

23 thoughts on “Gaia Flash Framework – My Experience”

  1. The biggest issue that I ran into was the ability to upgrade. We would be halfway done with a project and a new release would come out th at would take an upgrade to figure out what went wrong. Worse was that in order to even ask a question in the forum you need to me on the latest release. We now have a two dozen sites or more that where built over the last six months with the framework that have to go through an elaborate upgrade process just to make a simple change to the site. I think that if you only maintain one website Gaia is an amazing tool. But the upgrade process alone makes it difficult to use in a development house.

    Reply
  2. Jason,

    Thank you for your sharing your experience with Gaia. I am always working hard to improve the framework and the documentation. I was very impressed with the mY Generation site you built with Gaia. I think it’s a great example of how Gaia can be used to build sites that don’t strictly follow an in/out methodology.

    The good news is that your development needs are definitely supported by Gaia if you approach things from a slightly different angle. For instance, while Gaia has branches that consist of Pages, one way to look at Pages is that they are simply Assets that have managed transition behavior (PageAsset extends MovieClipAsset). You can eschew the use of Pages and instead use Assets to achieve the things you need without the overhead or conflict with the managed behavior you don’t.

    Gaia’s transition engine is flexible, but sometimes it’s not appropriate, and that’s why it’s optional. Assets can act as self-managed Pages so you can still leverage all the other parts of Gaia without having to use its transition hierarchy, and only rely on it when you need to. I think that this paradigm shift could have really helped with your development, but perhaps it’s not as apparent as it could be.

    To your point about file size, the page templates are less than 3k, and any swf assets are as big as you make them. Sharing assets like fonts amongst multiple swfs is not a challenge unique to Gaia. Any Flash site with multiple swfs would have that issue and a lot of developers struggle with the idiosyncrasies of it. I recently added ApplicationDomain support to Gaia to make it easier, and while there are workarounds to AS3’s lack of exclude.xml, it’s not as easy as AS2.

    As far as significant changes to implementation, the only things I can think of are the change I made to address the issue you were having with dynamic assets immediately after you reported it, and the recently improved Bitmap Asset. I update the framework quickly to fix reported bugs, and I go out of my way to not make drastic changes if at all possible. What are the specific implementation changes you were referring to?

    @ Wade Arnold – When bugs pop up, I address them immediately. I don’t require people upgrade in order to get support, but I recommend they do to take advantage of these bug fixes. I am happy to answer any questions about any version of Gaia you have. As far as upgrading goes, to upgrade a Gaia site, you click one button. I’m not sure why you find that to be elaborate. 😉

    And hey, since you’ve built two dozen sites with Gaia over the last six months, how come you haven’t posted any of them to the gallery? 🙂

    Reply
  3. @ Steven Sacks – thanks for posting. I guess had I had a bit more experience both in AS3 and the Gaia framework I may have been able to come up with a different implementation than I did. However using Assets instead of pages would mean the SWFAddress and history states wouldn’t be saved automatically, so decided to go down the more “traditional” path.

    I’m aware of sharing fonts across .swf, but I would normally use a single swf for all text content, thus avoiding the need to share fonts. This is obviously difficult to do as each page needs its own swf file, which even if it was the same file, Gaia still seems to want to load it everytime (or at least with a small delay).

    Regarding ApplicationDomain, I did have a great deal of difficulty getting this one part of my site to work properly. Partly because I was using a 3rd party component that I didn’t have the documentation for, and partly because the Gaia documentation was missing one or two important bits of information. Then you made the change to the domain (which actually fixed some of the issues I was experiencing) and then in the very next version you changed it back. This was too late in my development cycle to upgrade, so the SBS site is stuck using Gaia 2.2.5. I believe the changes you made in a later version to the BitmapAsset would also have affected the code I’d written. No biggy, but it did make me hesitant to upgrade my Gaia Framework for this particular project.

    @ Steven Hargrove – who are you directing your comments at?

    Reply
  4. Not really directing my comments to anyone. I mean – I wrote it on your blog, who else?

    I just think your taking the potential obstacles you may of encountered – a tad too harshly.

    Reply
  5. I want to first clarify that I stated my only issue. Meaning I enjoy everything else about Gaia. My comment was only to reaffirm Jason’s fourth point that the upgrades are difficult. This may be because Steven Sacks is working so hard to release new features! But our experience is that if you build a site and there are several releases between updates you need to have all of the MXP’s from the initial build to the latest release and walk through the MXP’s in order to get it up to version. You may then have one or two errors that are difficult to comprehend although they are probably documented on the wiki or forum. However when you just need to make a small change to a site this process can take up to a couple hours in order to just be able to publish it again.

    I really enjoy the philosophy behind gaia framework to the point that we disbanded our own development efforts of something similar in order to use gaia. We will continue to use gaia and do what we can to help steven through documentation or financial assistance.

    Reply
  6. lol, well there was two comments before your one; one in particular you could have been directing your rather obscure (was it a shot at humour?) comments at. And if you are directing them at me, then they’re a tad misdirected. I posted primarily to let people know about the Gaia framework. I found out about it through someone else’s blog, so am assuming there would still be some developers out there who needed a heads up about the good work Steven Sacks is doing on the Gaia Framework.

    Have you used the framework for a commercial project? The obstacles I encountered (please outline where I was “bashing”?) were often done so at 3, 4 and 5am in the morning with a looming deadline for an important project. If my post sounded harsh to you, it was because the issues were experienced in that context.

    Reply
  7. @Jason – Yes, I am currently finishing one project with Gaia, and have started another. They are both commercial products. I have also been in the all-nighter spot on both of these projects. But I am hesitant to say that it is Gaia’s fault.

    Gaia definitely has a learning curve, depending on how complex you intend your site to be. However, for the most part it has been a pretty smooth process.

    I just don’t see the value in looking at it in the way you are. Because there are solutions to every issue you stated with it – and I know that from personal experience of running into those same issues myself. What’s stopping you from posting these issues in the Gaia forum and possibly proposing some better practices to this *Open Source* project?

    It’s just how you deal with those problems that matters.

    My $0.02

    Reply
  8. Cool Steven, makes sense 😉

    FYI I did post my issues in the Gaia forum. Now I’m posting them here. I’m not sure I see a problem with that…? Though it does seem to be irking you a bit.

    Reply
  9. While it’s nice to know people feel passionately about Gaia, I’d like to step in here and tackle these issues before things get out of hand.

    @Wade Arnold – Yes, I am aware of the issues with multiple MXPs, keeping track of old versions, etc. and in the new Gaia panel (currently in development), there will be a great solution for this. One question, though, if you just need to make a small change to an otherwise working site, why bother updating it to the latest version?

    @Jason – You can use assets instead of pages and still get SWFAddress history by leveraging deeplinks. I discuss how to do this in the Wiki lesson Leveraging Deeplinks and SWFAddress.

    Check out the Purus Vodka site. If you look at the site.xml, you’ll see all the “pages” are assets, and there’s SWFAddress history and transitions between sections, and you’ll also notice that the “forest” asset doesn’t load until you navigate to it by setting the asset preload=”false” and listening for its complete event before transitioning to it. The amount of code this takes is very little and I get all the SWFAddress history I need. 🙂

    If you want to share fonts via a swf that is always there, you could make that swf an asset of a page that didn’t transition out (such as index), and set its depth to “top” (so it is always above middle pages), and have it listen to the onDeeplink event, check the current branch, and adjust its content accordingly. The exact implementation would be up to you, but it’s possible to do it this way. I’m not sure I would do this since I think you can put fonts in shared libraries. It’s been awhile so I don’t recall how you do this, but the information is out there (google).

    ApplicationDomain is tricky, and even the author of the class says it’s confusing sometimes. However, the only thing I changed about it was which setting was the default setting. You could still explicitly set it in the site.xml. If “current” worked for you, then set it to “current” and it wouldn’t matter what the default was. 🙂

    At any rate, I’d like to retire this discussion here and invite everyone to bring it to the forums since the topics covered here may be on other developer’s minds and we all might end up repeating ourselves.

    Reply
  10. Just to clarify, the only issues you posted on the forum were

    1. An issue with dynamic externalized assets not calling init when added to pages that were already loaded (which I fixed promptly after you posted it).

    2. How to access an asset type (which I answered).

    3. Reloading an asset (which I offered a solution for).

    None of those three items were listed in your blog post. Your blog post is about issues which you never mentioned on the forum, all of which have answers and solutions. I could have helped you with all of them if you gave me the opportunity. I’m happy to help. 🙂

    Reply
  11. Alright, so I posted some of my issues in the forum. At the time I was working incredibly long and late hours, and trying to communicate with the client back in Australia. There simply wasn’t enough time to document everything in a forum post and wait for a reply (which was often prompt thanks SS 😉 Now things have settled down, I’m posting some more things on my blog, which at the moment is making me feel like I’ve done something wrong…

    The initial things I mentioned in this post aren’t part of what I perceive to be the standard way Gaia is setup. Yes it can be made to operate in any way you can think of (just about) but you end up having to jump through more hoops some times than you would if you just coded it by hand. So I’m trying to illustrate what Gaia is good for, and perhaps what it’s not so good for.

    The ApplicationDomain took me about 14 hours to get sorted, so when you released version 2.2.3 and it instantly fixed the issue I was having (yes I was already using domain=current in the site.xml) I was very hesitant to upgrade from that point on. That’s one of many issues I experienced, and you’re right I didn’t post them all in the forum as I simply didn’t have enough time. I’ll endeavour to go back over my notes and post some more on the Gaia forums in the forth coming days and weeks.

    Using assets as pages is possible – but it kinda defeats the purpose of using the framework somewhat? It can be done, but at first glance (especially for someone new to both AS3 and Gaia) it looks like more work than just writing something from scratch that will do what you want. These aren’t criticisms of the Framework (you’ve done and continue to do a phenomenal job with it) but simply a heads up for those that don’t know much about it and happen to stumble upon this post.

    As for Mr Hargrove’s comments, at what stage did this deteriorate into a pissing contest…? Last time I checked this is my blog, and if I choose to illuminate passers by to my trials and tribulations using a certain framework I bloody well will. I really can’t understand why you’ve got so up in arms about what I’ve posted.

    Good day indeed (these sign offs are all very British, which for an Aussie is kinda amusing 😉

    Reply
  12. Using assets as pages does not defeat the purpose of the framework if you only perceive the framework as being useful for managing transitions. There are lots of other features Gaia has built-in that you can leverage. Here are just a few:

    It has a robust asset management system.
    It has complete integration with SWFAddress through one method (goto).
    It has an event based system that you can tap into for custom behavior.
    It has a built-in multi-preloader with events, and you can have two different preloaders (one for pages one for assets) and they can be overridden at run-time as many times as you like.

    There are a lot of great things in Gaia besides the transition engine. If you think it’s worth the effort to code your own sites that don’t have page transition methodology but have the above functionality, that’s cool.

    I use Gaia on any site that has multiple states and needs deeplinking, even if it’s only one page (like Purus) because Gaia just makes it easy to do that stuff. I don’t use Gaia generally on single page sites with out multiple states unless I’m doing a lot of asset management, or I’ll rip out the assets package and use it separately from Gaia (which is actually pretty easy to do).

    Reply
  13. I was under the impression that using an asset as a page would remove the default (inherited) deep link ability along with the normal transitionIn, transitionOut, beforeGoto etc events and the goto method wouldn’t work either? To be honest the transition engine wasn’t really what I was concerned about when I’ve seen assets being implemented as pages.

    I think as a proof of concept I will take my existing and still under development AS2 website and give it the good ‘ol Gaia treatment. I’ll be sure to post what I find either here, and or on the Gaia forums.

    Thanks again Steven, you’re commitment to the Framework and to those having issues is un-freaking-believable 🙂

    Reply
  14. I am a java developer & learning flash.

    Is there anyway I can Just add a page node in site.XML to a simple swf & do not compile whole thing. Will it work?

    Reply
  15. Hey Jason,

    So what are your thoughts now on AS3/GAIA etc? Are you using the GAIA framework for much of your work or have you developed your own framework?

    Cheers
    Ryan

    Reply
  16. @Ryan – Well my thoughts on AS3 are, what the hell was I doing using AS2 for so long! My thoughts on Gaia are, what the hell was I doing not using it for so long! So I’m a pretty big AS3/Gaia convert now – trying to code up a few more sites in at the moment. Great photos on your site BTW – did you knock that site up?

    Reply
  17. @Jason, ah ok =) I am definitely onto AS3 now, though my website to which you refer was done in AS2. I like the functionality of GAIA from what I’ve seen and many rave about it. I’m still undecisive on whether to always use it though. I guess I am one of those ppl that would rather develop their own framework from scratch rather than rely on 3rd party structures/concepts… i dunno =)

    Reply
  18. I’d suggest that creating a framework like Gaia would take a good SOLID couple of months of development time… possibly more.

    The Framework isn’t perfect for every Flash site, but it does lend itself to a structured way of building a complete Flash site. Plus you get the superb support that Steven Sacks offers on his forums, along with the rest of the growing Gaia community to help out when things go slightly pear.

    Reply
  19. Jason, yeh you’re probably right about that. Time I don’t really have right now unforunately. On that note, have you ever checked out SOMA / SOMAUI? It looks very similar to GAIA though it’s based on a slightly different concept / model.

    Reply
  20. Thanks for letting us know about SOMA ( http://www.soundstep.com/blog/downloads/somaui/ ) I hadn’t explored what it could do before, so good to know there’s other ways of doing similar stuff to Gaia.

    Not sure if you’ve seen this or not on the Gaia forums, but it’s an Air app that helps with creating the initial structure of the site – http://www.gaiaflashframework.com/index.php/topic,1235.0.html It’s not as feature rich as SOMAUI, but it definitely helps to get the job done.

    Reply

Leave a comment