From 826ba04305d673d2b2224443df5479f599d394ee Mon Sep 17 00:00:00 2001 From: Benjamin Southall Date: Fri, 3 Mar 2017 15:39:28 +0900 Subject: [PATCH] Add fireworks javascript and CSS --- js/fireworks/audio/boom1.mp3 | Bin 0 -> 11911 bytes js/fireworks/audio/boom2.mp3 | Bin 0 -> 10658 bytes js/fireworks/audio/boom3.mp3 | Bin 0 -> 7836 bytes js/fireworks/audio/boom4.mp3 | Bin 0 -> 9717 bytes js/fireworks/audio/pop1.mp3 | Bin 0 -> 2194 bytes js/fireworks/audio/pop2.mp3 | Bin 0 -> 3134 bytes js/fireworks/audio/pop3.mp3 | Bin 0 -> 4702 bytes js/fireworks/audio/pop4.mp3 | Bin 0 -> 5015 bytes js/fireworks/audio/pop5.mp3 | Bin 0 -> 3134 bytes js/fireworks/audio/pop6.mp3 | Bin 0 -> 4075 bytes js/fireworks/fireworks.js | 616 ++++++++++++++++++++ js/fireworks/image/particles.gif | Bin 0 -> 2469 bytes js/fireworks/index.html | 273 +++++++++ js/fireworks/loadfireworks.js | 11 + js/fireworks/soundmanager2-nodebug-jsmin.js | 75 +++ js/fireworks/swf/soundmanager2.swf | Bin 0 -> 2867 bytes js/fireworks/swf/soundmanager2_flash9.swf | Bin 0 -> 8605 bytes stylesheets/fireworks.css | 60 ++ 18 files changed, 1035 insertions(+) create mode 100755 js/fireworks/audio/boom1.mp3 create mode 100755 js/fireworks/audio/boom2.mp3 create mode 100755 js/fireworks/audio/boom3.mp3 create mode 100755 js/fireworks/audio/boom4.mp3 create mode 100755 js/fireworks/audio/pop1.mp3 create mode 100755 js/fireworks/audio/pop2.mp3 create mode 100755 js/fireworks/audio/pop3.mp3 create mode 100755 js/fireworks/audio/pop4.mp3 create mode 100755 js/fireworks/audio/pop5.mp3 create mode 100755 js/fireworks/audio/pop6.mp3 create mode 100755 js/fireworks/fireworks.js create mode 100644 js/fireworks/image/particles.gif create mode 100755 js/fireworks/index.html create mode 100644 js/fireworks/loadfireworks.js create mode 100644 js/fireworks/soundmanager2-nodebug-jsmin.js create mode 100644 js/fireworks/swf/soundmanager2.swf create mode 100644 js/fireworks/swf/soundmanager2_flash9.swf create mode 100755 stylesheets/fireworks.css diff --git a/js/fireworks/audio/boom1.mp3 b/js/fireworks/audio/boom1.mp3 new file mode 100755 index 0000000000000000000000000000000000000000..d87bf5dff10cc7249b65d345cc966076ef44d751 GIT binary patch literal 11911 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 literal 0 HcmV?d00001 diff --git a/js/fireworks/audio/boom2.mp3 b/js/fireworks/audio/boom2.mp3 new file mode 100755 index 0000000000000000000000000000000000000000..e66f7f6cbe06200bdfd08a4f7b4976e3b4014cf6 GIT binary patch literal 10658 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 literal 0 HcmV?d00001 diff --git a/js/fireworks/audio/boom3.mp3 b/js/fireworks/audio/boom3.mp3 new file mode 100755 index 0000000000000000000000000000000000000000..767e7bb87a043a8f6e7cd62e797e35f1527f10b5 GIT binary patch literal 7836 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 A(f|Me literal 0 HcmV?d00001 diff --git a/js/fireworks/audio/boom4.mp3 b/js/fireworks/audio/boom4.mp3 new file mode 100755 index 0000000000000000000000000000000000000000..db9ec2bf06ebc9bb3e14c2aa71670c6b952b3a63 GIT binary patch literal 9717 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 ASpWb4 literal 0 HcmV?d00001 diff --git a/js/fireworks/audio/pop2.mp3 b/js/fireworks/audio/pop2.mp3 new file mode 100755 index 0000000000000000000000000000000000000000..52e93ad3cf87089b11bd09f19dbed29bf76f58a0 GIT binary patch literal 3134 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 J#Q%@2zW^hX9_9c5 literal 0 HcmV?d00001 diff --git a/js/fireworks/audio/pop6.mp3 b/js/fireworks/audio/pop6.mp3 new file mode 100755 index 0000000000000000000000000000000000000000..b78749608008ac10250d319de6b34f205c9c69da GIT binary patch literal 4075 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 literal 0 HcmV?d00001 diff --git a/js/fireworks/fireworks.js b/js/fireworks/fireworks.js new file mode 100755 index 00000000..c997323f --- /dev/null +++ b/js/fireworks/fireworks.js @@ -0,0 +1,616 @@ +/* + * fireworks.js: A JavaScript animation experiment + * ----------------------------------------------- + * http://schillmania.com/projects/fireworks/ + * + * Provided "as-is", free and without warranty + * Originally written in 2005. Old code ahead. + * + * Includes SoundManager 2 API (BSD). + * http://schillmania.com/projects/soundmanager2/ + * + * v0.9.1.20110703 +*/ + +/*jslint white: false, onevar: false, undef: true, nomen: false, eqeqeq: false, plusplus: false, bitwise: true, regexp: false, newcap: true, immed: true */ +/*global window, document, navigator, setTimeout, setInterval, clearInterval, enableDebugMode, writeDebug, soundManager, FireworkParticle, attachEvent */ + +var fc; + +function Animator() { + + var self = this; + writeDebug('Animator()'); + this.tweens = []; + this.tweens['default'] = [1,2,3,4,5,6,7,8,9,10,9,8,7,6,5,4,3,2,1]; + this.tweens.blast = [12,12,11,10,10,9,8,7,6,5,4,3,2,1]; + this.tweens.fade = [10,10,10,10,10,10,10,10,10,10]; + this.queue = []; + this.queue.IDs = []; + this.active = false; + this.timer = null; + + this.createTween = function(start,end,type) { + // return array of tween coordinate data (start->end) + type = type||'default'; + var tween = [start]; + var tmp = start; + var diff = end-start; + var x = self.tweens[type].length; + for (var i=0; i= 0.4 && pos <= 0.6) { + pos = 0.5; + } + pos = parseInt(pos*100, 10); + // writeDebug('getPanX('+x+'): '+pos+'%'); + return pos; + }; + + this.isEmpty = function(o) { + // needs further hacking + return (typeof(o)=='undefined'||(o===null&&o!==0)||(o===''&&o!==0)||o=='null'); + }; + + this.init = function() { + self.oFW = document.getElementById('fw'); + self.oFP = document.getElementById('fp'); + if (typeof(enableDebugMode)!='undefined' && (self.DEBUG||window.location.toString().toLowerCase().indexOf('debug')>=0)) { + enableDebugMode(); + } + self.getWindowCoords(); + self.animator = new Animator(); + }; + + this.destructor = function() { + for (var i=self.fireworks.length; i--;) { + self.fireworks[i] = null; + } + self.fireworks = null; + }; + + if (this.isSafari || this.isOpera) { + this.getWindowCoords = this.getWindowCoordsAlt; + } + +} + +function Firework(oC,startX,startY,burstX,burstY,burstType,nRadius,nParticles,nCircles,allowRandom,obeyBoundaries) { + var self = this; + this.oID = 'fp'+(fc.gOID++); // may be unneeded + var p = ''; + for (var i=0; i=self.tween.length) { + self.active = false; + self.frame = 0; + if (self._oncomplete) { + self._oncomplete(); + } + self._oncomplete = null; + return false; + } + return true; + }; + + this.destructor = function() { + writeDebug('firework.destructor()'); + // for (var i=0; i=self.tween[0].length-1) { + self.active = false; + self.frame = 0; + if (self._oncomplete) { + self._oncomplete(); + } + self._oncomplete = null; + return false; + } + return true; + }; + + this.createBurst = function(circles,nMax,rMax,type) { + // c: # of circles, n: # of particles per circle, r: max radius + writeDebug('firework.createBurst('+circles+','+nMax+','+rMax+','+type+')'); + var i=0, j=0; + var tmp = 0; + var radiusInc = rMax/circles; + var radius = radiusInc; + var angle = 0; + var angleInc = 0; // per-loop increment + var radiusOffset = (self.allowRandom?(0.33+Math.random()):1); + var particlesPerCircle = []; + var isRandom = Math.random()>0.5; + var circleTypes = [type,circles>1?parseInt(Math.random()*fc.particleTypes, 10):type]; + var thisType = null; + + for (i=0; i=0) { + if (toX>=xMax) { + self.vx *= -1; + } + } else if (self.vx<0 && toX+self.baseX<=0) { + self.vx *= -1; + } + if (self.vy>=0) { + if (toY>=yMax) { + self.vy *= -1; + } + } else if (self.vy<0) { + if (toY+self.baseY-yMin<=0) { + self.vy *= -1; + } + } + } + self.moveTo(self.x+self.vx,self.y+self.vy); + }; + + this.setOpacity = function(n) { // where n = 0..100 + self.oImg.style.marginLeft = -100+(n*fc.particleXY/10)+'px'; + }; + + this.nextState = function() { + var vis = self.o.style.visibility; + if (self.state == 2 && vis != 'hidden') { + self.o.style.visibility = 'hidden'; + } else if (self.state != 2 && vis == 'hidden') { + self.o.style.visibility = 'visible'; + } + self.state = parseInt(Math.random()*3, 10); + }; + + this.slideTo = function(x1,y1) { + // writeDebug('slideTo (x/y): '+x1+','+y1); + if (self.isRandom) { + // randomize a bit + x1 += (x1*0.2*(Math.random()>0.5?1:-1)); + y1 += (y1*0.2*(Math.random()>0.5?1:-1)); + } + self.tween = [fc.animator.createTween(self.x,x1,self.tweenType),fc.animator.createTween(self.y,y1,self.tweenType)]; + // prevent X overflow (scrolling) + var xMax = fc.canvasX-fc.particleXY; + var yMax = fc.canvasY-fc.particleXY; + var xMin = fc.particleXY-self.baseX; + var yMin = fc.scrollY; + var toX = null; + var toY = null; + if (self.obeyBoundaries) { + for (var i=self.tween[0].length; i--;) { + // bounce off walls where applicable + toX = self.tween[0][i].data+self.baseX; + toY = self.tween[1][i].data+self.baseY; + if (toX>=xMax) { + self.tween[0][i].data -= (toX-xMax)*2; + // self.tween[0][i].event = 'bounce'; + } else if (toX<0) { + self.tween[0][i].data -= (toX*2); + // self.tween[0][i].event = 'bounce'; + } + if (toY>=yMax) { + self.tween[1][i].data -= (toY-yMax)*2; + // self.tween[1][i].event = 'bounce'; + } else if (toY-yMin<=0) { + self.tween[1][i].data -= (toY-yMin)*2; + // self.tween[1][i].event = 'bounce'; + } + } + } + }; + + this.animate = function() { + var f0 = self.tween[0][self.frame].data; + var f1 = self.tween[1][self.frame].data; + self.moveTo(f0,f1); + // possible bounce event/sound hooks + // if (self.tween[0][self.frame].event) soundManager.play(self.tween[0][self.frame].event); + // if (self.tween[1][self.frame].event) soundManager.play(self.tween[1][self.frame].event); + if (self.frame++>=self.tween[0].length-1) { + if (self._oncomplete) { + self._oncomplete(); + } + self._oncomplete = null; + self.active = false; + self.frame = 0; + return false; + } else if (self.frame>10) { + self.nextState(); + } + return true; + }; + + this.destructor = function() { + self.oImg = null; + self.oC.removeChild(self.o); + self.oC = null; + self.o = null; + }; + + this.setType = function(t) { + self.type = t; + self.oImg.style.marginTop = -(fc.particleXY*t)+'px'; + }; + + self.setType(type); + self.oC.appendChild(self.o); + +} + +function createFirework(nRadius,nParticles,nCircles,nBurstType,startX,startY,burstX,burstY,allowRandom,obeyBoundaries) { + + // check all arguments, supply random defaults if needed + var tmp = ''; + for (var i in arguments) { + if (arguments.hasOwnProperty(i)) { + tmp += i+','; + } + } + writeDebug('createFirework('+tmp+')'); + + if (fc.isEmpty(startX)) { + startX = parseInt(Math.random()*fc.canvasX, 10); + } else { + startX = parseInt(fc.canvasX*startX/100, 10); + } + + if (fc.isEmpty(startY)) { + startY = fc.canvasY-fc.particleXY; + } else { + startY = fc.canvasY-fc.screenY+parseInt(fc.screenY*startY/100, 10); + } + + if (fc.isEmpty(burstX)) { + burstX = parseInt(fc.canvasX*0.1+(Math.random()*fc.canvasX*0.8), 10); + } else { + burstX = parseInt(fc.canvasX*burstX/100, 10); + } + + if (fc.isEmpty(burstY)) { + burstY = fc.canvasY-parseInt(Math.random()*fc.screenY, 10); + } else { + burstY = fc.canvasY-parseInt(fc.screenY*(100-burstY)/100, 10); + } + + if (fc.isEmpty(nBurstType)) { + nBurstType = parseInt(Math.random()*fc.particleTypes, 10); + } + + if (fc.isEmpty(nRadius)) { + nRadius = 64+parseInt(Math.random()*fc.screenY*0.75, 10); + } else if (nRadius.toString().indexOf('%')>=0) { + nRadius = parseInt(parseInt(nRadius, 10)/100*fc.screenY, 10); + } else if (nRadius.toString().indexOf('.')>=0) { + nRadius = parseInt(nRadius*fc.screenY, 10); + } else { + nRadius = parseInt(nRadius*fc.screenY/100, 10); + } + + if (fc.isEmpty(nParticles)) { + nParticles = 4+parseInt(Math.random()*64, 10); + } + + if (fc.isEmpty(nCircles)) { + nCircles = Math.random()>0.5?2:1; + } + + if (fc.isEmpty(allowRandom)) { + allowRandom = Math.random()>0.5; + } + + if (fc.isEmpty(obeyBoundaries)) { + obeyBoundaries = Math.random()>0.5; + } + + // update screen coordinates + fc.getWindowCoords(); + + fc.fireworks[fc.fireworks.length] = new Firework(document.getElementById('fireContainer'),startX,startY,burstX,burstY,nBurstType,nRadius,nParticles,nCircles,allowRandom,obeyBoundaries); + +} + +soundManager.url = '../js/fireworks/swf/'; +soundManager.useHighPerformance = true; +soundManager.useHTML5Audio = true; +soundManager.wmode = 'transparent'; + +soundManager.onready(function() { + + var sounds = { + 'fire0': 'boom3.mp3', + 'fire1': 'boom4.mp3', + 'boom0': 'boom1.mp3', + 'boom1': 'boom2.mp3', + 'boom2': 'pop1.mp3', + 'boom3': 'pop2.mp3', + 'boom4': 'pop3.mp3', + 'boom5': 'pop4.mp3', + 'boom6': 'pop5.mp3', + 'boom7': 'pop6.mp3' + }; + + for (var item in sounds) { + if (sounds.hasOwnProperty(item)) { + soundManager.createSound({ + id: item, + url: '/js/fireworks/audio/' + sounds[item], + autoLoad: true + }); + } + } + +}); + +fc = new FireworksController(); + +// create null objects if APIs not present +if (typeof(writeDebug)=='undefined') { + window.writeDebug = function() { + return false; + }; +} + +function addEventHandler(o,evtName,evtHandler) { + return (typeof(attachEvent)=='undefined'?o.addEventListener(evtName,evtHandler,false):o.attachEvent('on'+evtName,evtHandler)); +} + +function removeEventHandler(o,evtName,evtHandler) { + return (typeof(attachEvent)=='undefined'?o.removeEventListener(evtName,evtHandler,false):o.detachEvent('on'+evtName,evtHandler)); +} + +addEventHandler(window,'resize',fc.getWindowCoords); +addEventHandler(window,'scroll',fc.getWindowCoords); +addEventHandler(window,'load',fc.init); +addEventHandler(window,'unload',fc.destructor); diff --git a/js/fireworks/image/particles.gif b/js/fireworks/image/particles.gif new file mode 100644 index 0000000000000000000000000000000000000000..47bf4766d2ff41fa0ce0dac67eb66b6793fd7c64 GIT binary patch literal 2469 zcmd^;>049h7RArWNyteUJj5`F2q7|wAqEADifK*^3Nkb*A|QAZKrfRm)ETvAQUgwL zMjla$ID0i{d}=9rLlm5%MnD7wP&srb$yx6&sGvwLG zT;#I>LCg?B1fb{_#P%5h!^mi7XXjW7c=qfWpisuya2tiI>H;fg6mX;P+UOtisAk5nYRzeg785t9RgQge&p|BKe{0YcFVxkNz94Ub# z8$jMGSl$oY+uOUky4L0cDG)z>`jmx%v>$*Upn~G!@qkWHZCr?bO#mf5_IT;7t*yR* z+TY*r4ID<&K~q!He*39%J1S3j2ERtxKz=@iQAc3uSy&EBN}}5ADB;bUH$H#{VTl)@ zyP<$h0TzoT{RONphuz)X?xx4)biktOb!z;fUNO4hK_P;joY0K6N3O31OJc3~ke< zWq<`>+B9Js{NZ~DCHA1-vc}8+(}TemAp~pIfY8wI!DI+4K7RZ-5@$OLk3*=1W;3j) zs5L$jgkaERnGykqp0^=f= zXp9rrT8}A7x;rmYkYjCh#^|Yfk(NShI85`6y0dpqAW6l&!i}*Ol!6n)PVXEexzFE4 z$_gj^R81!rR!0Sta~qP%7{|Mfs({;LRZ(6S(w->jq$6=5MJZESclrO^?f*Nei>6M^ z=3emDic1qG@foL(@;_yZE?`%G9%3f*Qmahqrc7&?BW#$;`-O_bxt_7(4g+{QIKCFHUDIGp7`0-QMH3ogcwS4~VnWpNKo2 zc)fP0zwJu?%ZC}oD(CSmPZ-Y;DZZ#2?@bYuEi)FYU%NK`B^0)7b^P_AW4yFMyEo+P z#TIf(W2#Dm&*9Yw z-?V=DuJ4xJJ+WtrOKSJtSblr={?h?6-(S$d9$y93ImN0h;fqx{w$Uw)2aBT58>obXTat#%N6NBwXrQ5KaI5q5O>%-8!%=FANt6~eA7UqYNsO)^` zZ!c8$FJ0>{-*K^a^m0GHZm=m|cm2z$+P;hWd$s-l`Tc!I|D}4Dr2{p0`Ael&9_4w2 zoHpt) zR=tZL<$E%w59MC!oF4kq?b+)(*LfWH{Gy}ReC3g7OTy;I&zh@5P4AkUJ~f}}DuA{x zJ(nOj9VTdCI|*>C+@e9;C6vTM71fEW#=J!i^dgQp&7ztg#&KSt6?-`a6Ap?h`fP+o z&-FtWt~X-UDOORol;L)!l12E(Ob8SxXL?q%`Gw>pr^{MqlFYUJh?ouUNw)>ZD>(^o zNnYk-bs%wz;nQYvkFru#-Xhx8U=7nn*1(7nv&LHg6s1{J^P)^NH~$!#_bV;aTjH38 z?o|LOA@_t_Q{y&$(ajwWU}v|b$FwwNwsr@B#UfqYy7UUW{YQw6`zfZU0Kzd zpm;wr<*nG$J$qY3o!n(zip~c}X927dVML0R9I4W2wam$pTd$Vtwp=rxF$ClBD1H=bnCn1Jc)Sw(Jj7CxX&{FAeyeu#j5ipoi8LNY;2#A+a;&S%8 zYZMeVE+@he6wegk9=i*v{A@ZBq}$3%B;Z4@vU;ZoJcu@Gr870n)Ll6mhKWI&<4Iw@ zqEaS$qMB7c(O z(RNm4G6ypvUKR!Vhsv~;E<Gq&*4QC`56q=lIw#9uPfYma_1c>4er%7 udv*?(&Alds%3>$$S-;CW*A2Qh_$%=$l$+8iYS literal 0 HcmV?d00001 diff --git a/js/fireworks/index.html b/js/fireworks/index.html new file mode 100755 index 00000000..e1175c43 --- /dev/null +++ b/js/fireworks/index.html @@ -0,0 +1,273 @@ + + + +Fireworks.js: A DHTML fireworks effect + + + + + + + + + + + + + + + + +

+
+
+
+ +
+ + + +
+ +
+ +

Fireworks.js

+ +

A javascript animation experiment

+ +

What's this all about? (AKA, "Holy pointless lightshow, Batman!")

+ +

Fireworks.js is a bit of Javascript that creates starburst-type explosions in a web document; in short, it's a fireworks effect someone could theoretically use on their site. And come on, who doesn't want something like that? As far as appropriateness is concerned, this effect could be compared to the dripping-blood-line, skull and fireball animated .GIF images so popular on the web in 1997. Exploding firework animations are hot, the new black, the script equivalent of the blink tag. Mmm, blink tag.

+ +

Nonetheless, Fireworks has been published here for fun, experimenting a bit with simple trigonometry and math, and those who are perhaps interested in javascript animation, object-oriented code or script-driven sound. It also serves as a dirty browser performance test of sorts, as a large number of elements are dynamically created, moved and destroyed on this page as the script runs.

+ +

Demo Controls

+ +

Why explain through reading when you can demonstrate by example? Try playing around with the sliders below for a wide range of visual effects. Not all combinations will look good, but the idea is to experiment.

+ +

Drag the sliders (or click a point on the bar) to set the various parameters available such as blast radius and the number of particles per explosion, then click "fire" to see the results.

+ +

The code required to generate the current effect is dynamically updated as you adjust the controls; refer to the createFirework() API call below.

+ +

Fireworks Parameters

+ +
+ +
+
+ Apply +
+
+ +
+
+ Apply +
+
+ +
+ +
+ +
Blast Radius
+
% of window size
+
1-100
+
+
+
+
+ +
Particles
+
Explosion elements
+
1-200
+
+
+
+
+ +
Circles
+
..per explosion
+
1-8
+
+
+
+
+ +
Burst Type
+
(Base colour)
+
1-7
+
+
+
+
+ +
+ +
+ +
Start X
+
% of window
+
1-100
+
+
+
+
+ +
Start Y
+
% of window
+
1-100
+
+
+
+
+ +
Explode X
+
% of window
+
1-100
+
+
+
+
+ +
Explode Y
+
% of window
+
1-100
+
+
+
+
+ +
+ +
+ +

Additional Options

+ +

+ +

+ +
+ +
+
Randomize explosion pattern
+ +
+
Obey window boundaries
+ +
+ +
+ +
+ +
+ +
+
+ Fire! +
+ +

+ Hide content (may increase performance) +

+ +

API call for current parameters

+ + + createFirework(nRadius,nParticles,nCircles,burstType,startX,startY,burstX,burstY)); + + +

Note: Random values will be substituted for null arguments and options that are not applied.

+ +

Demo Presets

+ +

Don't want to play with sliders? Here are a few canned effects that I thought were neat. Refer to the code for the parameters used to make the effect.

+ + + +

Features

+ +

Fireworks does the following nifty things:

+ +
    +
  • Random explosion patterns and colours
  • +
  • Customizable API allows for additional firework types and effects
  • +
  • Optional script-driven sound effects provided by SoundManager API
  • +
  • Nifty queue-based animation (easily set up your own firework sequences)
  • +
  • Sound panning effect based on firework location (left/right) on screen
  • +
  • Single-image, tile-based animation for efficiency
  • +
  • Standard DOM calls work under XML doctypes (ie. application/xhtml+xml)
  • +
  • Extensible (ideally), object-oriented, memory-leak-tested code*
  • +
+ +

* (I tried, but no guarantees. May drip a bit.)

+ +

Known Bugs ("Unintended features")

+ +
    +
  • Initial object creation can temporariliy freeze active animations (depending on CPU load)
  • +
  • Risk of browser crash on IE/Mozilla under Win32 from many simultaneous sound calls due to sketchy JS->ActiveX (Flash) bridge
  • +
+ + +

Use

+ +

Download, extract and view. Some basic examples are given that show the minimal requirements (Javascript/CSS references etc.) for the script to work. The code base also includes SoundManager, a Javascript API which allows ECMAscript (Javascript)-controlled sound effects reliably on IE and Mozilla across the Windows and Linux platforms.

+ +

Download

+ +
+ +
Fireworks v0.9.1.20110703
+
+
    +
  • Upgraded audio to SoundManager 2, now works in more places
  • +
  • Basic code clean-up, appease the JSLINT gods
  • +
  • Also on Github
  • +
+
+ +
Fireworks v0.9.20050609
+
+
    +
  • Initial build
  • +
  • Public release
  • +
  • Likely the first and last, but hey!
  • +
+
+ +
+ +

Related reading

+ + + +
+ + + +
+ + + \ No newline at end of file diff --git a/js/fireworks/loadfireworks.js b/js/fireworks/loadfireworks.js new file mode 100644 index 00000000..ff458cd5 --- /dev/null +++ b/js/fireworks/loadfireworks.js @@ -0,0 +1,11 @@ + $(document).on("ready", function() { + function cycle() { + setTimeout(function() { + createFirework(100,200,8,7,null,null,null,null,true,true); + cycle(); + }, 1000 + Math.floor(Math.random() * 8000)); + } +cycle(); + } +); + diff --git a/js/fireworks/soundmanager2-nodebug-jsmin.js b/js/fireworks/soundmanager2-nodebug-jsmin.js new file mode 100644 index 00000000..9f76f725 --- /dev/null +++ b/js/fireworks/soundmanager2-nodebug-jsmin.js @@ -0,0 +1,75 @@ +/** @license + + SoundManager 2: JavaScript Sound for the Web + ---------------------------------------------- + http://schillmania.com/projects/soundmanager2/ + + Copyright (c) 2007, Scott Schiller. All rights reserved. + Code provided under the BSD License: + http://schillmania.com/projects/soundmanager2/license.txt + + V2.97a.20110424+DEV +*/ +(function(X){function L(L,W){function i(b){return function(a){return!this._t||!this._t._a?null:b.call(this,a)}}function oa(){if(b.debugURLParam.test(M))b.debugMode=!0}this.flashVersion=8;this.debugFlash=this.debugMode=!1;this.useConsole=!0;this.waitForWindowLoad=this.consoleOnly=!1;this.nullURL="about:blank";this.allowPolling=!0;this.useFastPolling=!1;this.useMovieStar=!0;this.bgColor="#ffffff";this.useHighPerformance=!1;this.flashPollingInterval=null;this.flashLoadTimeout=1E3;this.wmode=null;this.allowScriptAccess= +"always";this.useHTML5Audio=this.useFlashBlock=!1;this.html5Test=/^probably$/i;this.preferFlash=this.useGlobalHTML5Audio=!0;this.requireFlash=!1;this.audioFormats={mp3:{type:['audio/mpeg; codecs="mp3"',"audio/mpeg","audio/mp3","audio/MPA","audio/mpa-robust"],required:!0},mp4:{related:["aac","m4a"],type:['audio/mp4; codecs="mp4a.40.2"',"audio/aac","audio/x-m4a","audio/MP4A-LATM","audio/mpeg4-generic"],required:!0},ogg:{type:["audio/ogg; codecs=vorbis"],required:!1},wav:{type:['audio/wav; codecs="1"', +"audio/wav","audio/wave","audio/x-wav"],required:!1}};this.defaultOptions={autoLoad:!1,stream:!0,autoPlay:!1,loops:1,onid3:null,onload:null,whileloading:null,onplay:null,onpause:null,onresume:null,whileplaying:null,onstop:null,onfailure:null,onfinish:null,onbeforefinish:null,onbeforefinishtime:5E3,onbeforefinishcomplete:null,onjustbeforefinish:null,onjustbeforefinishtime:200,multiShot:!0,multiShotEvents:!1,position:null,pan:0,type:null,usePolicyFile:!1,volume:100};this.flash9Options={isMovieStar:null, +usePeakData:!1,useWaveformData:!1,useEQData:!1,onbufferchange:null,ondataerror:null};this.movieStarOptions={bufferTime:3,serverURL:null,onconnect:null,duration:null};this.version=null;this.versionNumber="V2.97a.20110424+DEV";this.movieURL=null;this.url=L||null;this.altURL=null;this.enabled=this.swfLoaded=!1;this.o=null;this.movieID="sm2-container";this.id=W||"sm2movie";this.swfCSS={swfBox:"sm2-object-box",swfDefault:"movieContainer",swfError:"swf_error",swfTimedout:"swf_timedout",swfLoaded:"swf_loaded", +swfUnblocked:"swf_unblocked",sm2Debug:"sm2_debug",highPerf:"high_performance",flashDebug:"flash_debug"};this.oMC=null;this.sounds={};this.soundIDs=[];this.muted=!1;this.debugID="soundmanager-debug";this.debugURLParam=/([#?&])debug=1/i;this.didFlashBlock=this.specialWmodeCase=!1;this.filePattern=null;this.filePatterns={flash8:/\.mp3(\?.*)?$/i,flash9:/\.mp3(\?.*)?$/i};this.baseMimeTypes=/^\s*audio\/(?:x-)?(?:mp(?:eg|3))\s*(?:$|;)/i;this.netStreamMimeTypes=/^\s*audio\/(?:x-)?(?:mp(?:eg|3))\s*(?:$|;)/i; +this.netStreamTypes=["aac","flv","mov","mp4","m4v","f4v","m4a","mp4v","3gp","3g2"];this.netStreamPattern=RegExp("\\.("+this.netStreamTypes.join("|")+")(\\?.*)?$","i");this.mimePattern=this.baseMimeTypes;this.features={buffering:!1,peakData:!1,waveformData:!1,eqData:!1,movieStar:!1};this.sandbox={};this.hasHTML5=null;this.html5={usingFlash:null};this.flash={};this.ignoreFlash=!1;var Y,b=this,x,n=navigator.userAgent,h=X,M=h.location.href.toString(),k=this.flashVersion,g=document,Z,N,q=[],D=!1,E=!1, +m=!1,s=!1,pa=!1,F,o,$,t,y,aa,O,qa,ba,u,ra,G,z,ca,da,P,ea,sa,ta,Q,ua,H=null,fa=null,v,ga,A,R,S,ha,j,T=!1,ia=!1,va,wa,w=null,xa,U,I,r,ja,ya,l,Da=Array.prototype.slice,J=!1,ka,B,za,Aa=n.match(/pre\//i),Ea=n.match(/(ipad|iphone|ipod)/i);n.match(/mobile/i);var p=n.match(/msie/i),Fa=n.match(/webkit/i),K=n.match(/safari/i)&&!n.match(/chrome/i),Ga=n.match(/opera/i),la=!M.match(/usehtml5audio/i)&&!M.match(/sm2\-ignorebadua/i)&&K&&n.match(/OS X 10_6_([3-7])/i),ma=typeof g.hasFocus!=="undefined"?g.hasFocus(): +null,C=typeof g.hasFocus==="undefined"&&K,Ba=!C,Ca=/(mp3|mp4|mpa)/i;this.html5Only=!1;this._use_maybe=M.match(/sm2\-useHTML5Maybe\=1/i);this._overHTTP=g.location?g.location.protocol.match(/http/i):null;this._http=!this._overHTTP?"http:":"";this.useAltURL=!this._overHTTP;this._global_a=null;if(Ea||Aa)b.useHTML5Audio=!0,b.ignoreFlash=!0,J=b.useGlobalHTML5Audio=!0;if(Aa||this._use_maybe)b.html5Test=/^(probably|maybe)$/i;this.supported=this.ok=function(){return w?m&&!s:b.useHTML5Audio&&b.hasHTML5};this.getMovie= +function(b){return p?h[b]:K?x(b)||g[b]:x(b)};this.createSound=function(c){function a(){e=R(e);b.sounds[d.id]=new Y(d);b.soundIDs.push(d.id);return b.sounds[d.id]}var e=null,f=null,d=null;if(!m||!b.ok())return ha("soundManager.createSound(): "+v(!m?"notReady":"notOK")),!1;arguments.length===2&&(c={id:arguments[0],url:arguments[1]});d=e=o(c);if(j(d.id,!0))return b.sounds[d.id];if(U(d))f=a(),f._setup_html5(d);else{if(k>8&&b.useMovieStar){if(d.isMovieStar===null)d.isMovieStar=d.serverURL||d.type&&d.type.match(b.netStreamPattern)|| +d.url.match(b.netStreamPattern)?!0:!1;if(d.isMovieStar&&d.usePeakData)d.usePeakData=!1}d=S(d,"soundManager.createSound(): ");f=a();if(k===8)b.o._createSound(d.id,d.onjustbeforefinishtime,d.loops||1,d.usePolicyFile);else if(b.o._createSound(d.id,d.url,d.onjustbeforefinishtime,d.usePeakData,d.useWaveformData,d.useEQData,d.isMovieStar,d.isMovieStar?d.bufferTime:!1,d.loops||1,d.serverURL,d.duration||null,d.autoPlay,!0,d.autoLoad,d.usePolicyFile),!d.serverURL)f.connected=!0,d.onconnect&&d.onconnect.apply(f); +(d.autoLoad||d.autoPlay)&&!d.serverURL&&f.load(d)}d.autoPlay&&!d.serverURL&&f.play();return f};this.destroySound=function(c,a){if(!j(c))return!1;var e=b.sounds[c],f;e._iO={};e.stop();e.unload();for(f=0;f0)a.resume();else{a.playState=1;a.paused=!1;(!a.instanceCount||a._iO.multiShotEvents||k>8&&!a.isHTML5&&!a.getAutoPlay())&&a.instanceCount++;a.position=typeof a._iO.position!=="undefined"&&!isNaN(a._iO.position)?a._iO.position:0;if(!a.isHTML5)a._iO=S(R(a._iO));if(a._iO.onplay&&V)a._iO.onplay.apply(a),a._onplay_called=!0;a.setVolume(a._iO.volume,!0);a.setPan(a._iO.pan,!0);a.isHTML5?(d(),e=a._setup_html5(),a.setPosition(a.position), +e.play()):b.o._start(a.sID,a._iO.loops||1,k===9?a.position:a.position/1E3)}return a};this.stop=function(c){if(a.playState===1){a._onbufferchange(0);a.resetOnPosition(0);if(!a.isHTML5)a.playState=0;a.paused=!1;a._iO.onstop&&a._iO.onstop.apply(a);if(a.isHTML5){if(a._a)a.setPosition(0),a._a.pause(),a.playState=0,a._onTimer(),f(),a.unload()}else b.o._stop(a.sID,c),a._iO.serverURL&&a.unload();a.instanceCount=0;a._iO={}}return a};this.setAutoPlay=function(c){a._iO.autoPlay=c;a.isHTML5?a._a&&c&&a.play(): +b.o._setAutoPlay(a.sID,c);c&&!a.instanceCount&&a.readyState===1&&a.instanceCount++};this.getAutoPlay=function(){return a._iO.autoPlay};this.setPosition=function(c){c===void 0&&(c=0);var d=a.isHTML5?Math.max(c,0):Math.min(a.duration||a._iO.duration,Math.max(c,0));a.position=d;c=a.position/1E3;a.resetOnPosition(a.position);a._iO.position=d;if(a.isHTML5){if(a._a&&a._html5_canplay&&a._a.currentTime!==c)try{a._a.currentTime=c,(a.playState===0||a.paused)&&a._a.pause()}catch(e){}}else c=k===9?a.position: +c,a.readyState&&a.readyState!==2&&b.o._setPosition(a.sID,c,a.paused||!a.playState);a.isHTML5&&a.paused&&a._onTimer(!0);return a};this.pause=function(c){if(a.paused||a.playState===0&&a.readyState!==1)return a;a.paused=!0;a.isHTML5?(a._setup_html5().pause(),f()):(c||c===void 0)&&b.o._pause(a.sID);a._iO.onpause&&a._iO.onpause.apply(a);return a};this.resume=function(){if(!a.paused)return a;a.paused=!1;a.playState=1;a.isHTML5?(a._setup_html5().play(),d()):(a._iO.isMovieStar&&a.setPosition(a.position), +b.o._pause(a.sID));!a._onplay_called&&a._iO.onplay?(a._iO.onplay.apply(a),a._onplay_called=!0):a._iO.onresume&&a._iO.onresume.apply(a);return a};this.togglePause=function(){if(a.playState===0)return a.play({position:k===9&&!a.isHTML5?a.position:a.position/1E3}),a;a.paused?a.resume():a.pause();return a};this.setPan=function(c,d){typeof c==="undefined"&&(c=0);typeof d==="undefined"&&(d=!1);a.isHTML5||b.o._setPan(a.sID,c);a._iO.pan=c;if(!d)a.pan=c,a.options.pan=c;return a};this.setVolume=function(c, +d){typeof c==="undefined"&&(c=100);typeof d==="undefined"&&(d=!1);if(a.isHTML5){if(a._a)a._a.volume=Math.max(0,Math.min(1,c/100))}else b.o._setVolume(a.sID,b.muted&&!a.muted||a.muted?0:c);a._iO.volume=c;if(!d)a.volume=c,a.options.volume=c;return a};this.mute=function(){a.muted=!0;if(a.isHTML5){if(a._a)a._a.muted=!0}else b.o._setVolume(a.sID,0);return a};this.unmute=function(){a.muted=!1;var c=typeof a._iO.volume!=="undefined";if(a.isHTML5){if(a._a)a._a.muted=!1}else b.o._setVolume(a.sID,c?a._iO.volume: +a.options.volume);return a};this.toggleMute=function(){return a.muted?a.unmute():a.mute()};this.onposition=function(b,c,d){a._onPositionItems.push({position:b,method:c,scope:typeof d!=="undefined"?d:a,fired:!1});return a};this.processOnPosition=function(){var c,d;c=a._onPositionItems.length;if(!c||!a.playState||a._onPositionFired>=c)return!1;for(;c--;)if(d=a._onPositionItems[c],!d.fired&&a.position>=d.position)d.method.apply(d.scope,[d.position]),d.fired=!0,b._onPositionFired++;return!0};this.resetOnPosition= +function(c){var d,e;d=a._onPositionItems.length;if(!d)return!1;for(;d--;)if(e=a._onPositionItems[d],e.fired&&c<=e.position)e.fired=!1,b._onPositionFired--;return!0};this._onTimer=function(b){var c={};if(a._hasTimer||b)return a._a&&(b||(a.playState>0||a.readyState===1)&&!a.paused)?(a.duration=a._get_html5_duration(),a.durationEstimate=a.duration,b=a._a.currentTime?a._a.currentTime*1E3:0,a._whileplaying(b,c,c,c,c),!0):!1};this._get_html5_duration=function(){var b=a._a?a._a.duration*1E3:a._iO?a._iO.duration: +void 0;return b&&!isNaN(b)&&b!==Infinity?b:a._iO?a._iO.duration:null};d=function(){a.isHTML5&&va(a)};f=function(){a.isHTML5&&wa(a)};e=function(){a._onPositionItems=[];a._onPositionFired=0;a._hasTimer=null;a._onplay_called=!1;a._a=null;a._html5_canplay=!1;a.bytesLoaded=null;a.bytesTotal=null;a.position=null;a.duration=a._iO&&a._iO.duration?a._iO.duration:null;a.durationEstimate=null;a.failures=0;a.loaded=!1;a.playState=0;a.paused=!1;a.readyState=0;a.muted=!1;a.didBeforeFinish=!1;a.didJustBeforeFinish= +!1;a.isBuffering=!1;a.instanceOptions={};a.instanceCount=0;a.peakData={left:0,right:0};a.waveformData={left:[],right:[]};a.eqData=[];a.eqData.left=[];a.eqData.right=[]};e();this._setup_html5=function(c){var c=o(a._iO,c),d=J?b._global_a:a._a;decodeURI(c.url);var f=d&&d._t?d._t.instanceOptions:null;if(d){if(d._t&&f.url===c.url&&(!a._lastURL||a._lastURL===f.url))return d;J&&d._t&&d._t.playState&&c.url!==f.url&&d._t.stop();e();d.src=c.url;a.url=c.url;a._lastURL=c.url;d._called_load=!1}else if(d=new Audio(c.url), +d._called_load=!1,J)b._global_a=d;a.isHTML5=!0;a._a=d;d._t=a;a._add_html5_events();d.loop=c.loops>1?"loop":"";c.autoLoad||c.autoPlay?(d.autobuffer="auto",d.preload="auto",a.load(),d._called_load=!0):(d.autobuffer=!1,d.preload="none");d.loop=c.loops>1?"loop":"";return d};this._add_html5_events=function(){if(a._a._added_events)return!1;var c;a._a._added_events=!0;for(c in b._html5_events)b._html5_events.hasOwnProperty(c)&&a._a&&a._a.addEventListener(c,b._html5_events[c],!1);return!0};this._remove_html5_events= +function(){a._a._added_events=!1;for(var c in b._html5_events)b._html5_events.hasOwnProperty(c)&&a._a&&a._a.removeEventListener(c,b._html5_events[c],!1)};this._whileloading=function(b,c,d,e){a.bytesLoaded=b;a.bytesTotal=c;a.duration=Math.floor(d);a.bufferLength=e;if(a._iO.isMovieStar)a.durationEstimate=a.duration;else if(a.durationEstimate=a._iO.duration?a.duration>a._iO.duration?a.duration:a._iO.duration:parseInt(a.bytesTotal/a.bytesLoaded*a.duration,10),a.durationEstimate===void 0)a.durationEstimate= +a.duration;a.readyState!==3&&a._iO.whileloading&&a._iO.whileloading.apply(a)};this._onid3=function(b,c){var d=[],e,f;e=0;for(f=b.length;e0&&(c=0);a.position=c;a.processOnPosition();if(k>8&&!a.isHTML5){if(a._iO.usePeakData&&typeof d!=="undefined"&&d)a.peakData={left:d.leftPeak,right:d.rightPeak};if(a._iO.useWaveformData&&typeof e!=="undefined"&& +e)a.waveformData={left:e.split(","),right:f.split(",")};if(a._iO.useEQData&&typeof g!=="undefined"&&g&&g.leftEQ&&(c=g.leftEQ.split(","),a.eqData=c,a.eqData.left=c,typeof g.rightEQ!=="undefined"&&g.rightEQ))a.eqData.right=g.rightEQ.split(",")}a.playState===1&&(!a.isHTML5&&b.flashVersion===8&&!a.position&&a.isBuffering&&a._onbufferchange(0),a._iO.whileplaying&&a._iO.whileplaying.apply(a),(a.loaded||!a.loaded&&a._iO.isMovieStar)&&a._iO.onbeforefinish&&a._iO.onbeforefinishtime&&!a.didBeforeFinish&&a.duration- +a.position<=a._iO.onbeforefinishtime&&a._onbeforefinish());return!0};this._onconnect=function(b){b=b===1;if(a.connected=b)a.failures=0,j(a.sID)&&(a.getAutoPlay()?a.play(void 0,a.getAutoPlay()):a._iO.autoLoad&&a.load()),a._iO.onconnect&&a._iO.onconnect.apply(a,[b])};this._onload=function(b){b=b?!0:!1;a.loaded=b;a.readyState=b?3:2;a._onbufferchange(0);a._iO.onload&&a._iO.onload.apply(a,[b]);return!0};this._onfailure=function(b,c,d){a.failures++;if(a._iO.onfailure&&a.failures===1)a._iO.onfailure(a,b, +c,d)};this._onbeforefinish=function(){if(!a.didBeforeFinish)a.didBeforeFinish=!0,a._iO.onbeforefinish&&a._iO.onbeforefinish.apply(a)};this._onjustbeforefinish=function(){if(!a.didJustBeforeFinish)a.didJustBeforeFinish=!0,a._iO.onjustbeforefinish&&a._iO.onjustbeforefinish.apply(a)};this._onfinish=function(){var b=a._iO.onfinish;a._onbufferchange(0);a.resetOnPosition(0);a._iO.onbeforefinishcomplete&&a._iO.onbeforefinishcomplete.apply(a);a.didBeforeFinish=!1;a.didJustBeforeFinish=!1;if(a.instanceCount){a.instanceCount--; +if(!a.instanceCount)a.playState=0,a.paused=!1,a.instanceCount=0,a.instanceOptions={},a._iO={},f();(!a.instanceCount||a._iO.multiShotEvents)&&b&&b.apply(a)}};this._onbufferchange=function(b){if(a.playState===0)return!1;if(b&&a.isBuffering||!b&&!a.isBuffering)return!1;a.isBuffering=b===1;a._iO.onbufferchange&&a._iO.onbufferchange.apply(a);return!0};this._ondataerror=function(){a.playState>0&&a._iO.ondataerror&&a._iO.ondataerror.apply(a)}};da=function(){return g.body?g.body:g._docElement?g.documentElement: +g.getElementsByTagName("div")[0]};x=function(b){return g.getElementById(b)};o=function(c,a){var e={},f,d;for(f in c)c.hasOwnProperty(f)&&(e[f]=c[f]);f=typeof a==="undefined"?b.defaultOptions:a;for(d in f)f.hasOwnProperty(d)&&typeof e[d]==="undefined"&&(e[d]=f[d]);return e};l=function(){function b(a){var a=Da.call(a),c=a.length;e?(a[1]="on"+a[1],c>3&&a.pop()):c===3&&a.push(!1);return a}function a(a,b){var c=a.shift(),g=[f[b]];if(e)c[g](a[0],a[1]);else c[g].apply(c,a)}var e=h.attachEvent,f={add:e?"attachEvent": +"addEventListener",remove:e?"detachEvent":"removeEventListener"};return{add:function(){a(b(arguments),"add")},remove:function(){a(b(arguments),"remove")}}}();U=function(c){return!c.serverURL&&(c.type?I({type:c.type}):I({url:c.url})||b.html5Only)};I=function(c){function a(a){return b.preferFlash&&!b.ignoreFlash&&typeof b.flash[a]!=="undefined"&&b.flash[a]}if(!b.useHTML5Audio||!b.hasHTML5)return!1;var e=c.url||null,c=c.type||null,f=b.audioFormats,d;if(c&&b.html5[c]!=="undefined")return b.html5[c]&& +!a(c);if(!r){r=[];for(d in f)f.hasOwnProperty(d)&&(r.push(d),f[d].related&&(r=r.concat(f[d].related)));r=RegExp("\\.("+r.join("|")+")","i")}d=e?e.toLowerCase().match(r):null;if(!d||!d.length)if(c)e=c.indexOf(";"),d=(e!==-1?c.substr(0,e):c).substr(6);else return!1;else d=d[0].substr(1);return d&&typeof b.html5[d]!=="undefined"?b.html5[d]&&!a(d):(c="audio/"+d,e=b.html5.canPlayType({type:c}),(b.html5[d]=e)&&b.html5[c]&&!a(c))};ya=function(){function c(c){var d,e,f=!1;if(!a||typeof a.canPlayType!=="function")return!1; +if(c instanceof Array){d=0;for(e=c.length;d1&&b.stream)b.stream=!1;return b};S=function(b){if(b&&!b.usePolicyFile&&(b.onid3||b.usePeakData||b.useWaveformData||b.useEQData))b.usePolicyFile=!0;return b};ha=function(b){typeof console!== +"undefined"&&typeof console.warn!=="undefined"&&console.warn(b)};Z=function(){return!1};ta=function(b){for(var a in b)b.hasOwnProperty(a)&&typeof b[a]==="function"&&(b[a]=Z)};Q=function(c){typeof c==="undefined"&&(c=!1);(s||c)&&b.disable(c)};ua=function(c){var a=null;if(c)if(c.match(/\.swf(\?.*)?$/i)){if(a=c.substr(c.toLowerCase().lastIndexOf(".swf?")+4))return c}else c.lastIndexOf("/")!==c.length-1&&(c+="/");return(c&&c.lastIndexOf("/")!==-1?c.substr(0,c.lastIndexOf("/")+1):"./")+b.movieURL};ba= +function(){if(k!==8&&k!==9)b.flashVersion=8;var c=b.debugMode||b.debugFlash?"_debug.swf":".swf";if(b.useHTML5Audio&&!b.html5Only&&b.audioFormats.mp4.required&&b.flashVersion<9)b.flashVersion=9;k=b.flashVersion;b.version=b.versionNumber+(b.html5Only?" (HTML5-only mode)":k===9?" (AS3/Flash 9)":" (AS2/Flash 8)");if(k>8)b.defaultOptions=o(b.defaultOptions,b.flash9Options),b.features.buffering=!0;k>8&&b.useMovieStar?(b.defaultOptions=o(b.defaultOptions,b.movieStarOptions),b.filePatterns.flash9=RegExp("\\.(mp3|"+ +b.netStreamTypes.join("|")+")(\\?.*)?$","i"),b.mimePattern=b.netStreamMimeTypes,b.features.movieStar=!0):(b.useMovieStar=!1,b.features.movieStar=!1);b.filePattern=b.filePatterns[k!==8?"flash9":"flash8"];b.movieURL=(k===8?"soundmanager2.swf":"soundmanager2_flash9.swf").replace(".swf",c);b.features.peakData=b.features.waveformData=b.features.eqData=k>8};sa=function(c,a){if(!b.o||!b.allowPolling)return!1;b.o._setPolling(c,a)};P=function(c,a){var e=a?a:b.url,f=b.altURL?b.altURL:e,d;d=da();var h,k,i=A(), +j,l=null,l=(l=g.getElementsByTagName("html")[0])&&l.dir&&l.dir.match(/rtl/i),c=typeof c==="undefined"?b.id:c;if(D&&E)return!1;if(b.html5Only)return ba(),b.oMC=x(b.movieID),N(),E=D=!0,!1;D=!0;ba();b.url=ua(b._overHTTP?e:f);a=b.url;b.wmode=!b.wmode&&b.useHighPerformance&&!b.useMovieStar?"transparent":b.wmode;if(b.wmode!==null&&(n.match(/msie 8/i)||!p&&!b.useHighPerformance)&&navigator.platform.match(/win32|win64/i))b.specialWmodeCase=!0,b.wmode=null;d={name:c,id:c,src:a,width:"auto",height:"auto",quality:"high", +allowScriptAccess:b.allowScriptAccess,bgcolor:b.bgColor,pluginspage:b._http+"//www.macromedia.com/go/getflashplayer",type:"application/x-shockwave-flash",wmode:b.wmode,hasPriority:"true"};if(b.debugFlash)d.FlashVars="debug=1";b.wmode||delete d.wmode;if(p)e=g.createElement("div"),k=''+(b.wmode?' ':"")+''+(b.debugFlash?'':"")+"";else for(h in e=g.createElement("embed"),d)d.hasOwnProperty(h)&&e.setAttribute(h,d[h]);oa();i=A();if(d=da())if(b.oMC=x(b.movieID)?x(b.movieID): +g.createElement("div"),b.oMC.id){j=b.oMC.className;b.oMC.className=(j?j+" ":b.swfCSS.swfDefault)+(i?" "+i:"");b.oMC.appendChild(e);if(p)h=b.oMC.appendChild(g.createElement("div")),h.className=b.swfCSS.swfBox,h.innerHTML=k;E=!0}else{b.oMC.id=b.movieID;b.oMC.className=b.swfCSS.swfDefault+" "+i;h=i=null;if(!b.useFlashBlock)if(b.useHighPerformance)i={position:"fixed",width:"8px",height:"8px",bottom:"0px",left:"0px",overflow:"hidden"};else if(i={position:"absolute",width:"6px",height:"6px",top:"-9999px", +left:"-9999px"},l)i.left=Math.abs(parseInt(i.left,10))+"px";if(Fa)b.oMC.style.zIndex=1E4;if(!b.debugFlash)for(j in i)i.hasOwnProperty(j)&&(b.oMC.style[j]=i[j]);try{p||b.oMC.appendChild(e);d.appendChild(b.oMC);if(p)h=b.oMC.appendChild(g.createElement("div")),h.className=b.swfCSS.swfBox,h.innerHTML=k;E=!0}catch(m){throw Error(v("appXHTML"));}}return!0};j=this.getSoundById;G=function(){if(b.html5Only)return P(),!1;if(b.o)return!1;b.o=b.getMovie(b.id);if(!b.o)H?(p?b.oMC.innerHTML=fa:b.oMC.appendChild(H), +H=null,D=!0):P(b.id,b.url),b.o=b.getMovie(b.id);b.oninitmovie instanceof Function&&setTimeout(b.oninitmovie,1);return!0};aa=function(c){if(c)b.url=c;G()};O=function(){setTimeout(qa,1E3)};qa=function(){if(T)return!1;T=!0;l.remove(h,"load",O);if(C&&!ma)return!1;var c;m||(c=b.getMoviePercent());setTimeout(function(){c=b.getMoviePercent();!m&&Ba&&(c===null?b.useFlashBlock||b.flashLoadTimeout===0?b.useFlashBlock&&ga():Q(!0):b.flashLoadTimeout!==0&&Q(!0))},b.flashLoadTimeout)};aa=function(c){if(c)b.url= +c;G()};A=function(){var c=[];b.debugMode&&c.push(b.swfCSS.sm2Debug);b.debugFlash&&c.push(b.swfCSS.flashDebug);b.useHighPerformance&&c.push(b.swfCSS.highPerf);return c.join(" ")};ga=function(){v("fbHandler");var c=b.getMoviePercent(),a=b.swfCSS;if(b.ok()){if(b.oMC)b.oMC.className=[A(),a.swfDefault,a.swfLoaded+(b.didFlashBlock?" "+a.swfUnblocked:"")].join(" ")}else{if(w)b.oMC.className=A()+" "+a.swfDefault+" "+(c===null?a.swfTimedout:a.swfError);b.didFlashBlock=!0;t({type:"ontimeout",ignoreInit:!0}); +b.onerror instanceof Function&&b.onerror.apply(h)}};u=function(){function b(){l.remove(h,"focus",u);l.remove(h,"load",u)}if(ma||!C)return b(),!0;ma=Ba=!0;K&&C&&l.remove(h,"mousemove",u);T=!1;b();return!0};F=function(c){if(m)return!1;if(b.html5Only)return m=!0,t(),y(),!0;b.useFlashBlock&&b.flashLoadTimeout&&!b.getMoviePercent()||(m=!0);if(s||c){if(b.useFlashBlock)b.oMC.className=A()+" "+(b.getMoviePercent()===null?b.swfCSS.swfTimedout:b.swfCSS.swfError);t({type:"ontimeout"});b.onerror instanceof Function&& +b.onerror.apply(h);return!1}l.add(h,"unload",Z);if(b.waitForWindowLoad&&!pa)return l.add(h,"load",y),!1;else y();return!0};$=function(b,a,e){typeof q[b]==="undefined"&&(q[b]=[]);q[b].push({method:a,scope:e||null,fired:!1})};t=function(c){c||(c={type:"onready"});if(!m&&c&&!c.ignoreInit)return!1;if(c.type==="ontimeout"&&b.ok())return!1;var a={success:c&&c.ignoreInit?b.ok():!s},e=c&&c.type?q[c.type]||[]:[],c=[],f,d=w&&b.useFlashBlock&&!b.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 literal 0 HcmV?d00001 diff --git a/stylesheets/fireworks.css b/stylesheets/fireworks.css new file mode 100755 index 00000000..279b840a --- /dev/null +++ b/stylesheets/fireworks.css @@ -0,0 +1,60 @@ +/* fireworks styles */ + +body { + margin: 0px; + padding: 0px; +} + +#fireworks-template { + display:none; +} + +#fireContainer { + position:absolute; + left:0px; + top:0px; + z-index:706; +} + +.firework { + /* containing box which flies out first */ + position:absolute; + left:0px; + top:0px; + font-size:1px; + width:4px; + height:4px; + border:1px solid #333; + background:#666; +} + +.fireworkParticle { + /* elements that explode from the container */ + position:absolute; + font-size:1px; + width:10px; + height:10px; + overflow:hidden; +} + +.fireworkParticle img { + display:block; + width:100px; +} + +#sound { + position:absolute; + left:-706px; + top:-706px; +} + +#debug { + position:absolute; + left:8px; + top:8px; + width:220px; + height:165px; + overflow:hidden; + color:#666; + display:none; +} \ No newline at end of file