views:

156

answers:

4

I am about to embark on building a Flash site with approximately 500 pages. The site is an interactive learning type of system, with about 10 "chapters" each containing around 50 "pages".

Each page has some sort of animation and interactivity, for example the user might have to decide whether a statement is true or false by clicking on one of two buttons, and then an appropriate response is displayed. The user can jump backwards and forwards between pages as they wish.

As far as I know, these are some of my options...

A) Build the entire site as a single Flash file with no external content.

B) Build each of the 10 chapters as a separate Flash file, and then have a master Flash file which loads in the chapters. Each page would then be a separate movie clip within the chapter file.

C) Build each indevidual page as a separate Flash file, and then have master Flash file which loads these in.

At the moment I'm thinking that option B would be best, and I'd be very grateful for your thoughts on this! Of course, there are probably other options that I haven't thought of.

+1  A: 

I think that is better make the website using HTML + other language like PHP or ASP.Net to load the data in a dynamic way from a DB instead using Flash.

I'd use Flash only to animations.

Onir
I'd love to use ASP.Net, but unfortunately there is animation on every single page, and it's a requirement that feedback needs to be instant with no page refresh. I know this is theoretically possible with JavaScript, but it's much easier with Flash!
philwilks
But thats why AJAX is available for ASP.NET?
Darknight
I think this would be a better solution. You can still make animations in flash. Don't forget that all search engines can't index your flash files (at least google can to some extent).
Runeborg
I should have also mentioned that this interactive learning site also needs to function offline, for example from a CD. Would you still recommend persuing an ASP.Net based solutio?
philwilks
If you have to use offline ASP.Net doesn't work because you need an Internet Information Server running...
Onir
+1  A: 

I would go with a slightly different aproach.

I would highly recomend creating the whole thing in Flex 3 instead of Flash CS4. If the pages are generic enough you could even save them in a database, and build them dynamicly when the user opens a page or chapter. Flex was made to make simple UI faster to create.

I never liked working with .fla files, although it is hard to avoid.

Anyway I would go with solution C.

Update:

My reason for choosing C over B is fairly simple. Versioning of a big .fla is close to imposible. Say you are revamping a chapter, but then you discover a bug on one of the pages that needs to fixed ASAP. You need to revert the whole chapter before fixing the bug because the update you are working on is not quite ready yet. Now you need to find the right version, which can be a bit anoying if you have been fixing things on some of the other pages. And if you are working on a team it becomes even more anoying. Two people can not be working on different pages in the same chapter.

Until Flash Catalyst comes out this just something Flash developers have to live with, but I find that it becomes a bit easier when you spread the content out in more .fla's. Of cause this makes it slightly more annoying to share graphics across the pages, but still manageable.

Lillemanden
Unfortunately the pages aren't generic at all, otherwise I'd definately store the content in a database and/or XML files. Thanks for the idea of using Flex - I've never tried it but will take a look!May I ask why you prefer option C over B?
philwilks
Thanks for the additional information. In light of other people's suggestions, I am also thinking that option C is the best solution as this could fit into an HTML / ASP.Net based framework, with each page being loaded separately.
philwilks
A: 

You can templatize entire book and pluck data from some XML file which also describe which animation to show with content. So, Every page will be an Layout XML and you will have only one SWF file which will have code to parse and render this Layout XML file. you will do something what MXML or XAML doing!

Bhavesh.Bagadiya
I'm afraid the pages are all very different, otherwise I'd definately do it this way.
philwilks
Still, I wont support to build whole book in flash. You can always build generic layout xml parser which can render even complex layouts. build one SWF with this complex logic and then you only have to create different XMLs. You can see how complex rendering can be achieved through MXML in Flex. so rather than investing time building entire book in static SWF, it would always be wiser to invest time implementing bit complex rendering engine.
Bhavesh.Bagadiya
A: 

I would imagine that many of these pages are very similar, containing a limited combination of text and controls. It might be better to build the pages on the fly. For example have one flash file for all the multiple choice type pages, and load the content via XML from a database. This way you will have to build only a limited amount of flash, and will achieve much greater consistency of presentation. Also, I would guess there is a certain amount of content that is static from page to page, such as a header, navigation and footer. These could be placed in a containing flash, avoiding further duplication of work.

To me this looks more like a small questionnaire / e-book type application, which could easily be handled by a smart flash app with some XML data describing the pages.

Killroy
I originally wanted to do it this way, but the layout and interactivity is very different from page to page. I definately think the "containing flash" idea is a good one.
philwilks