diff options
| author | Jules Laplace <carbon@melanarchy.org> | 2013-08-02 17:19:21 -0500 |
|---|---|---|
| committer | Jules Laplace <carbon@melanarchy.org> | 2013-08-02 17:19:21 -0500 |
| commit | 753f60c7d4769fa72d3b910e491f37db6f130898 (patch) | |
| tree | ea7b7a2cc8775e2d9b8e3375f0da5188ca0298f4 /docs/dymaxion/soundmanagerv297a-20101010/demo/template/deferred-example.html | |
| parent | d5e6bf6609012e61f82d812d44bc1ff8104c97fb (diff) | |
dymaxion
Diffstat (limited to 'docs/dymaxion/soundmanagerv297a-20101010/demo/template/deferred-example.html')
| -rwxr-xr-x | docs/dymaxion/soundmanagerv297a-20101010/demo/template/deferred-example.html | 127 |
1 files changed, 127 insertions, 0 deletions
diff --git a/docs/dymaxion/soundmanagerv297a-20101010/demo/template/deferred-example.html b/docs/dymaxion/soundmanagerv297a-20101010/demo/template/deferred-example.html new file mode 100755 index 0000000..2f33a55 --- /dev/null +++ b/docs/dymaxion/soundmanagerv297a-20101010/demo/template/deferred-example.html @@ -0,0 +1,127 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
+<head>
+<title>SoundManager 2: Deferred loading / Lazy-loading / Dynamic script loading Example</title>
+<meta name="description" content="How to load soundmanager2.js on-the-fly using JavaScript, and start it dynamically after window.load() has already fired using beginDelayedInit()." />
+<style type="text/css">
+#soundmanager-debug {
+ /* SM2 debug container (optional, use or customize this as you like - makes in-browser debug output more useable) */
+ position:fixed;_position:absolute;right:1em;bottom:1em;width:50em;height:18em;overflow:auto;background:#fff;margin:1em;padding:1em;border:1px solid #999;font-family:monaco,"lucida console",verdana,tahoma,"sans serif";font-size:x-small;line-height:1.5em;opacity:0.9;filter:alpha(opacity=90);
+}
+</style>
+<!-- some CSS for this demo page, not required for SM2 -->
+<link rel="stylesheet" href="template.css" />
+
+<!-- SM2 BAREBONES TEMPLATE: START -->
+
+<script type="text/javascript">
+
+function loadScript(sURL,onLoad) {
+ try {
+ var loadScriptHandler = function() {
+ var rs = this.readyState;
+ if (rs == 'loaded' || rs == 'complete') {
+ this.onreadystatechange = null;
+ this.onload = null;
+ if (onLoad) {
+ onLoad();
+ }
+ }
+ }
+ function scriptOnload() {
+ this.onreadystatechange = null;
+ this.onload = null;
+ window.setTimeout(onLoad,20);
+ }
+ var oS = document.createElement('script');
+ oS.type = 'text/javascript';
+ if (onLoad) {
+ oS.onreadystatechange = loadScriptHandler;
+ oS.onload = scriptOnload;
+ }
+ oS.src = sURL;
+ document.getElementsByTagName('head')[0].appendChild(oS);
+ } catch(e) {
+ // oh well
+ }
+}
+
+function msg(s) {
+ document.getElementById('sm2-status').innerHTML = s;
+}
+
+window.onload = function() {
+ msg('Window loaded, waiting 1 second...');
+ setTimeout(function(){
+ msg('Loading soundmanager2.js...');
+ loadScript('../../script/soundmanager2.js',function(){
+ // SM2 script has loaded
+ soundManager.url = '../../swf/';
+ soundManager.onready(function() {
+ if (soundManager.supported()) {
+ soundManager.createSound({
+ id:'foo',
+ url:'../_mp3/mouseover.mp3'
+ }).play();
+ }
+ msg(soundManager.supported()?'started OK':'Loaded OK, but unable to start: unsupported/flash blocked, etc.');
+ });
+ soundManager.beginDelayedInit(); // ensure start-up in case document.readyState and/or DOMContentLoaded are unavailable
+ });
+ },1000);
+}
+
+</script>
+</head>
+
+<body style="height:100%">
+
+<div style="margin-right:43em">
+ <h1>SoundManager 2: Lazy Loading Example</h1>
+ <p>This is an example of dynamically loading SoundManager 2 using JS, after window.onload() has fired.</p>
+ <h2>How it works</h2>
+ <p>This page waits until window.onload(), delays 1 second and loads soundmanager2.js, which should then start up.</p>
+
+<p>SoundManager 2 status: <b id="sm2-status">Waiting for window.onload()...</b></p>
+
+<pre>window.onload = function() {
+ <span>// Window loaded, waiting 1 second...</span>
+ setTimeout(function() {
+ <span>// Loading soundmanager2.js...</span>
+ loadScript('../../script/soundmanager2.js',function() {
+ <span>// SM2 script has loaded</span>
+ soundManager.url = '../../swf/';
+ soundManager.onready(function() {
+ if (soundManager.supported()) {
+ soundManager.createSound({
+ id:'foo',
+ url:'../_mp3/mouseover.mp3'
+ }).play();
+ }
+ <span>// msg(soundManager.supported()?'started OK':'Loaded OK, but unable to start: unsupported/flash blocked, etc.');</span>
+ });
+ soundManager.beginDelayedInit(); <span>// ensure start-up in case document.readyState and/or DOMContentLoaded are unavailable</span>
+ });
+ },1000);
+}</pre>
+
+ <h2 id="flashblock-handling">Handling flash blockers</h2>
+ <p>It's good to let users see the flash component of SM2, so those with flash blockers can unblock it and allow SM2 to start. For more info on this, see the <a href="../flashblock/" title="SoundManager 2 with Flash block handling" onclick="if (!document.domain) this.href=this.href+'index.html'">Flashblock</a> example.</p>
+
+ <h2>Making SM2 wait for window.onload()</h2>
+ <p>If you prefer to have the library wait for window.onload() before calling soundManager.onload()/onerror() methods, you can modify SM2's "waitForWindowLoad" property:</p>
+<code>soundManager.waitForWindowLoad = true;</code>
+ <h2 style="margin-top:1em">Disabling debug output</h2>
+ <p>SoundManager 2 will write to a debug <div> element or a javascript console if available, by default. To disable it, simply set the relevant property to false:</p>
+<code>soundManager.debugMode = false;</code>
+ <p>To see related configuration code, refer to the source of this page which basically does all of the above "for real."</p>
+ <h2>Troubleshooting</h2>
+ <p>If SM2 is failing to start and throwing errors due to flash security, timeouts or other issues, check out the <a href="../../doc/getstarted/#troubleshooting" title="SoundManager 2 troubleshooting tool" onclick="if (!document.domain) this.href=this.href.replace(/\#/,'index.html#')">troubleshooting tool</a> which can help you fix things.</p>
+ <h2>No-debug, compressed version of soundmanager2.js</h2>
+ <p>Once development is finished, you can also use the "minified" (60% smaller) version of SM2, which has debug output and comments removed for you: <a href="../../script/soundmanager2-nodebug-jsmin.js">soundmanager2-nodebug-jsmin.js</a>. If you can, serve this with gzip compression for even greater bandwidth savings!</p>
+
+</div>
+
+</body>
+</html>
|
