Created
April 10, 2011 02:56
-
-
Save douglasZwick/912000 to your computer and use it in GitHub Desktop.
W. T. Fuck
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| soundManager.url = 'resources/soundmanager/swf/'; | |
| soundManager.useHTML5Audio = true; | |
| soundManager.useFlashBlock = false; | |
| var TitleWrapper = function() | |
| { | |
| var delay = null, | |
| frameNumber = 0, | |
| afterFirstLoop = false, | |
| started = false, | |
| introMusicAudio = null, | |
| loopMusicAudio = null, | |
| cursor1Audio = null, | |
| cursor2Audio = null, | |
| selectionAudio = null, | |
| self = this; | |
| this.setup = function() | |
| { | |
| var imageCount = 160; // One for each image in the animation, plus each mute button state | |
| var audioCount = 5; // One for the intro and one for the loop of the song | |
| var onImageLoaded = function() // This function is called every time an image's onload | |
| { // event occurs | |
| console.log("Image loaded: ", this, imageCount); | |
| imageCount--; | |
| var sixteenths = Math.floor(((160 - imageCount) * 16) / 160); | |
| if (sixteenths < 10) | |
| { | |
| document.getElementById("videoprogress").src = "resources/progress/video0" + sixteenths + ".png"; | |
| } else | |
| { | |
| document.getElementById("videoprogress").src = "resources/progress/video" + sixteenths + ".png"; | |
| } | |
| if (!imageCount && !audioCount && !started) | |
| { | |
| started = true; | |
| beginAnimation(); | |
| } | |
| } | |
| var onAudioLoaded = function() // This function is called every time an audio's onload | |
| { // event occurs | |
| console.log("Audio loaded: ", this, audioCount); | |
| audioCount--; | |
| var sixteenths = Math.floor(((5 - audioCount) * 16) / 5); | |
| if (sixteenths < 10) | |
| { | |
| document.getElementById("audioprogress").src = "resources/progress/audio0" + sixteenths + ".png"; | |
| } else | |
| { | |
| document.getElementById("audioprogress").src = "resources/progress/audio" + sixteenths + ".png"; | |
| } | |
| if (!imageCount && !audioCount && !started) | |
| { | |
| started = true; | |
| beginAnimation(); | |
| } | |
| } | |
| var beginAnimation = function() | |
| { | |
| document.getElementById("mainbody").className = "titlebody"; | |
| document.getElementById("vprogdiv").style.display = "none"; | |
| document.getElementById("aprogdiv").style.display = "none"; | |
| // if (localStorage["isMuted"] == "true") | |
| if (window.localStorage.isMuted == "true") | |
| { | |
| onMute(); | |
| } | |
| document.getElementById("mutebutton").style.display = "block"; | |
| document.getElementById("animation").src = "resources/animation/000.png"; | |
| self.displayCurrentFrame(); | |
| } | |
| var onAudioFailed = function() // This function is called when something non-vital fails to load (i.e. | |
| { // sound) -- assetCount is still decremented | |
| console.log("Audio failed: ", this, audioCount); | |
| audioCount--; | |
| if (!imageCount && !audioCount && !started) | |
| { | |
| started = true; | |
| beginAnimation(); // The animation can still play without audio, just in case of whatever | |
| } | |
| } | |
| for(var i = 0; i <= 153; i++) // Creates 154 new Image objects for the purpose of pre-loading their srcs | |
| { | |
| var imageTemp = new Image(); | |
| if (i < 10) | |
| { | |
| imageTemp.src = "resources/animation/00" + i + ".png"; | |
| } else | |
| if (i < 100) | |
| { | |
| imageTemp.src = "resources/animation/0" + i + ".png"; | |
| } else | |
| { | |
| imageTemp.src = "resources/animation/" + i + ".png"; | |
| } | |
| imageTemp.addEventListener("load", onImageLoaded, true); | |
| } | |
| var muteImage = new Image(); | |
| muteImage.src = "resources/mute.png"; | |
| muteImage.addEventListener("load", onImageLoaded, true); | |
| var muteOverImage = new Image(); | |
| muteOverImage.src = "resources/mutehover.png"; | |
| muteOverImage.addEventListener("load", onImageLoaded, true); | |
| var muteDownImage = new Image(); | |
| muteDownImage.src = "resources/muteactive.png"; | |
| muteDownImage.addEventListener("load", onImageLoaded, true); | |
| var unmuteImage = new Image(); | |
| unmuteImage.src = "resources/unmute.png"; | |
| unmuteImage.addEventListener("load", onImageLoaded, true); | |
| var unmuteOverImage = new Image(); | |
| unmuteOverImage.src = "resources/unmutehover.png"; | |
| unmuteOverImage.addEventListener("load", onImageLoaded, true); | |
| var unmuteDownImage = new Image(); | |
| unmuteDownImage.src = "resources/unmuteactive.png"; | |
| unmuteDownImage.addEventListener("load", onImageLoaded, true); | |
| soundManager.onready(function() | |
| { | |
| introMusicAudio = soundManager.createSound( | |
| { | |
| id: 'intro', | |
| url: 'resources/audio/titlethemeintro.mp3', | |
| onload: function() | |
| { | |
| soundManager._writeDebug("*** *** *** Intro audio loaded *** *** ***"); | |
| onAudioLoaded(); | |
| }, | |
| onfinish: function() | |
| { | |
| soundManager._writeDebug("Intro finished. Playing loop...."); | |
| soundManager.play('loop'); | |
| }, | |
| autoLoad: true | |
| }); | |
| loopMusicAudio = soundManager.createSound( | |
| { | |
| id: 'loop', | |
| url: 'resources/audio/titlethemeloop.mp3', | |
| onload: function() | |
| { | |
| soundManager._writeDebug("*** *** *** Loop audio loaded *** *** ***"); | |
| onAudioLoaded(); | |
| }, | |
| onfinish: function() | |
| { | |
| soundManager._writeDebug("Loop finished. Replaying loop...."); | |
| this.play(); | |
| }, | |
| autoLoad: true | |
| }); | |
| cursor1Audio = soundManager.createSound( | |
| { | |
| id: 'cursor1', | |
| url: 'resources/audio/cursor1.wav', | |
| onload: function() | |
| { | |
| soundManager._writeDebug("*** *** *** Cursor 1 audio loaded *** *** ***"); | |
| onAudioLoaded(); | |
| }, | |
| autoLoad: true | |
| }); | |
| cursor2Audio = soundManager.createSound( | |
| { | |
| id: 'cursor2', | |
| url: 'resources/audio/cursor2.wav', | |
| onload: function() | |
| { | |
| soundManager._writeDebug("*** *** *** Cursor 2 audio loaded *** *** ***"); | |
| onAudioLoaded(); | |
| }, | |
| autoLoad: true | |
| }); | |
| selectionAudio = soundManager.createSound( | |
| { | |
| id: 'selection', | |
| url: 'resources/audio/selection.wav', | |
| onload: function() | |
| { | |
| soundManager._writeDebug("*** *** *** Selection audio loaded *** *** ***"); | |
| onAudioLoaded(); | |
| }, | |
| autoLoad: true | |
| }); | |
| }); | |
| soundManager.ontimeout(function() | |
| { | |
| console.log("Sound Manager 2 failed to start properly. REASON: snrnp"); | |
| onAssetFailed(); | |
| onAssetFailed(); | |
| onAssetFailed(); | |
| onAssetFailed(); | |
| onAssetFailed(); | |
| }); | |
| } | |
| this.displayCurrentFrame = function() | |
| { | |
| if(frameNumber == 0) | |
| { | |
| delay = 2000; | |
| } else | |
| if(frameNumber == 4 || frameNumber == 8 || frameNumber == 12 || | |
| frameNumber == 13 || frameNumber == 44 || frameNumber == 110) | |
| { // Certain frames have strategically-timed delays. Others are simply | |
| delay = 4000; // animation transitions and so have only a brief delay | |
| } else | |
| if(frameNumber == 124 || frameNumber == 137 || frameNumber == 150) | |
| { | |
| delay = 6000; | |
| } else | |
| if(frameNumber == 0 || frameNumber == 114 || frameNumber == 115 || | |
| frameNumber == 128 || frameNumber == 141) | |
| { | |
| delay = 2000; | |
| } else | |
| if(frameNumber == 119 || frameNumber == 120 || frameNumber == 121 || | |
| frameNumber == 122 || frameNumber == 123 || frameNumber == 132 || | |
| frameNumber == 133 || frameNumber == 134 || frameNumber == 135 || | |
| frameNumber == 136 || frameNumber == 145 || frameNumber == 146 || | |
| frameNumber == 147 || frameNumber == 148 || frameNumber == 149) | |
| { | |
| delay = 1000; | |
| } else | |
| if(frameNumber == 1 || frameNumber == 2 || frameNumber == 3 || | |
| frameNumber == 5 || frameNumber == 6 || frameNumber == 7 || | |
| frameNumber == 9 || frameNumber == 10 || frameNumber == 11 || | |
| frameNumber == 111 || frameNumber == 112 || frameNumber == 113 || | |
| frameNumber == 116 || frameNumber == 117 || frameNumber == 118 || | |
| frameNumber == 125 || frameNumber == 126 || frameNumber == 127 || | |
| frameNumber == 129 || frameNumber == 130 || frameNumber == 131 || | |
| frameNumber == 138 || frameNumber == 139 || frameNumber == 140 || | |
| frameNumber == 142 || frameNumber == 143 || frameNumber == 144 || | |
| frameNumber == 151 || frameNumber == 152 || frameNumber == 153) | |
| { | |
| delay = 100; | |
| } else | |
| { | |
| delay = 17; | |
| } | |
| if(frameNumber == 9 && !afterFirstLoop) // titlethemeintro.mp3 begins on the ninth frame of the animation, | |
| { // but only the first time through the loop | |
| soundManager.play('intro'); | |
| afterFirstLoop = true; | |
| $('#animation').addClass('clickable'); | |
| document.getElementById("animation").onclick = function() | |
| { | |
| soundManager.pause('intro'); | |
| soundManager.pause('loop'); | |
| soundManager.play('selection'); | |
| document.getElementById("mainbody").className = "blankbody"; | |
| window.setTimeout(function() { window.location = "stageselect/index.html"; }, 500); | |
| } | |
| } | |
| var timer = window.setTimeout(function() { self.displayCurrentFrame(); }, delay); // Here's where the delay | |
| // actually begins | |
| if(frameNumber < 10) // The newly-incremented frame number becomes the filename of | |
| { // the src for the next frame (with leading zeroes as appropriate) | |
| document.getElementById("animation").src = "resources/animation/00" + frameNumber + ".png"; | |
| } else | |
| if(frameNumber < 100) | |
| { | |
| document.getElementById("animation").src = "resources/animation/0" + frameNumber + ".png"; | |
| } else | |
| { | |
| document.getElementById("animation").src = "resources/animation/" + frameNumber + ".png"; | |
| } | |
| if(frameNumber != 153) // If the animation isn't on the last frame, then it increments. | |
| { | |
| frameNumber++; | |
| } else // Otherwise, it loops back to frame eight. | |
| { | |
| frameNumber = 8; | |
| } | |
| } | |
| var onMute = function() | |
| { | |
| introMusicAudio.toggleMute(); | |
| loopMusicAudio.toggleMute(); | |
| cursor1Audio.toggleMute(); | |
| cursor2Audio.toggleMute(); | |
| selectionAudio.toggleMute(); | |
| $('#mutebutton').toggleClass('muted'); | |
| soundManager.play('cursor2'); | |
| if ($('#mutebutton').hasClass('muted')) | |
| { | |
| // localStorage["isMuted"] = "true"; | |
| window.localStorage.isMuted = "true"; | |
| } else | |
| { | |
| // localStorage["isMuted"] = "false"; | |
| window.localStorage.isMuted = "false"; | |
| } | |
| } | |
| document.getElementById("mutebutton").onclick = onMute; | |
| document.getElementById("mutebutton").onmouseover = function() { soundManager.play('cursor1'); }; | |
| this.setup(); | |
| } | |
| window.onload = function() | |
| { | |
| window.titlewrapper = new TitleWrapper(); | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment