YTMND Template
YTMND Site Template in Flash
Draft version 0.08
Contents
Overview
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.
The current template is in two pieces, an HTML/Javascript version and a HTML/Javascript/Flash version. The non-Flash version is used when the site uses a WAV file, as Flash is incapable of loading external WAV files at run-time.
Current Issues
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
- Javascript and more specifically the DOM and DOM events are incredibly finicky across the wide range of browsers currently in use. One of the main issues that effects both versions of the template is actually being able to tell when an image is fully loaded and ready to display. Trying to write code that works across Firefox, IE 6/7, Safari, Opera etc is painful and hard to test or update. Using flash would alleviate a good majority of these problems.
- 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
- Synchronization
- 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
- Due to the previously mentioned onload event issues, some browsers don't seem to fire the right events when an end-user visits a YTMND and then tabs to another program or page (e.g. they want to do something else while the YTMND loads). This causes some browsers to never load the assets, or never fire off the Javascript/Flash event which actually displays the YTMND, effectively forcing people to sit at a loading screen when they shouldn't have to.
- 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
- Since we use a mix of Javascript and Flash, there still exist a plethora of compatibility issues which are mentioned above.