Building a Flash website without a preloader
Our aim with the new Skive website was to build a great looking site taking full advantage of the dynamism that is available through Flash, but without any of the common annoyances that can occur in non-HTML sites.
The traditional Flash website
Essentially one big page behind one big preloader. Users cannot navigate directly into an individual page within the site, cannot bookmark or forward links to individual pages, and cannot use the browser’s back and forward buttons. The worst case scenario here is a user who has navigated around the site for a while, doesn’t realise the history buttons don’t work and clicks the back button, taking them right out of the website entirely and to wherever they were before that.
The Skive website
The skive site uses SWFAddress, a third party Flash and Javascript library allowing each page to have a unique URL and enabling use of the browser’s back and forward button. There are several features of the site which allow us to take full advantage of SWFAddress.
To minimise load times, and to remove the need for a preloader at all, the site only ever loads the necessary code for the page currently being viewed. This is made possible by having a separate file for each section, and separate modules for each library of code. There is one main site file which contains the navigation, text rendering engine and file loading logic. Anything else is loaded only when it is needed.
To give a concrete example with numbers, all 3D code (which uses Papervision3D) is compiled into its own library which is loaded when needed. When the user visits the featured section the 3D code is loaded first (70KB), followed by the much smaller featured section file (15KB). If the user then navigates to the work section the 3D library is already loaded and only the very small work section (4KB) needs to be loaded.
Page load times are also reduced by not requiring all images to be preloaded before a page will display, instead (like an HTML page) the page is rendered first, then each image as it is loaded.







