YTMND Site Template in Flash
Draft version 0.08
This document is the working draft of what will end up being the new template in which all YTMNDs will be displayed and output. It is a work in progress.
The goal is to recreate the current HTML site template into a 100% flash template. This will remedy a large number of problems that plague the current site template as well as removing the dependency for Quicktime or alternatives to play sound. Greater than 99% of the users who visit YTMND currently have Flash version 9 or greater, so harnessing the power and flexibility of Actionscript 3.0 seems ideal.
Global Template Issues
- Animated GIF lag
- Animated GIFs play at different speeds depending on browser, CPU, presence of zooming text etc. This causes a lot of synching issues.
- Zooming Text/Image Text
- Zooming text is based on the archaic original code and doesn't have much rhyme or reason. It causes lag on most browsers/computers when using animated gifs. Due to this issue, image text was created, forcing the creation of hundreds of thousands of transparent gifs which are overlayed onto the current site. This means when the algorithm changes, everything needs to be re-created. There are also lots of XSS/UTF problems, using some sort of embedded font in Flash would probably fix this problem, although it isn't clear what the most optimal way to do this would be.
- Browser Compatibility
- Onload issues -- Ads/Tracking Code
- Due to the onload event being called at different times in different browsers, I've hacked onload to run once every asset on the page is actually loaded. This means non-visible ads, tracking code etc has to be loaded before the site will even display. When tracking sites or ad servers are down, this can literally add 30+ seconds of unnecaessary page load time. Additionally, most of the ads that currently run use a cascading system where if the first ad company can't fill an ad space it gets sent to the next ad company and so on until a fill is found, in effect forcing some users to have to look up 5 ad server IPs and waiting for each to respond.
Non-Flash Template Issues
- In an HTML setup, assets are shown/played as soon as they are loaded, and when synchronization is required, this requires the end user to refresh the page and view the site using cached assets to achieve the intended effect. In most cases it never fully works perfectly.
- Sound playing dependancy
- We use a simple server side browser detection mechanism that spits out sound player code depending on the OS/browser. It's not only incredibly unrelaible, but due to the current WAV playing necessity, it's also sometimes completely useless. IE has a proprietary BGSOUND tag that uses media player which functions well for the most part, but on all other browsers we use an OBJECT or EMBED tag. Currently the standard sound player for WAVs on non-Flash YTMNDs is Quicktime. Over the last few years it has become progressively less reliable and functional. At this point, more than 50% of the time, files either don't loop, don't play at all, or don't loop properly (e.g. only part of the sound actually loops after the first time.).
- Beyond that, the majority of first time users don't have the proper setup to play YTMND sounds on non-IE browsers and the Quicktime setup is confusing and intrusive at best for someone who is non-technical. I am assuming this causes a huge bounce rate as most people don't want to install a plugin just to view YTMNDs. This is probably the biggest factor in moving towards a flash solution.
Flash Template Issues
- Onload issues - losing window focus
- Onload issues
- More or less a duplicate of the above mentioned issue where advertisements and tracking code can cause slight to excessive delay in loading/display of YTMNDs.
- Browser Compatibility
- Volume Control + Mute
- The ability to raise/lower volume using a control directly on the site, with a flash cookie to save the volume level.
- The ability to pause and resume a YTMND. For animated sites, this will pause both the animation and the sound, for non-animated sites this will merely pause the sound.
- The ability to restart the YTMND using a control directly on the site without having to reload the page.
- Automatic resynchronization of animation and sound
- An automatic forced re-synchronization of sound and animation every X loops ensures that continual looping won't ruin the site due to lazy synchronization.
- Loader advertisements
- Finally being able to monetize the sites themselves with a 300x250 ad shown during loading.
- Asynchronous loading of site assets
- Would allow both image and sound to be loaded at the same time, allowing for much quicker loading speed. Additionally, 100% flash would make the current onload issues (sites failing to start, browser compatibility, waiting for slow ad servers, etc) moot.
- Semi-finite image placement
- Currently you can only tile or center an image. New options would be to position at top left, top center, top right, middle left, middle center etc.
- Real seamless looping
- No more gaps between sound loops. MP3s will still have gaps due to issues with the format that are almost insurmountable, but WAV files uploaded seem to be gapless once imported into Flash from all the testing I've done.