Mercurial > hg > dbtune-site
view screencasts/songbird-map/index.html @ 19:1e79ce3ff5f5 tip
Simplify and cut some non-working resource paths
author | Chris Cannam |
---|---|
date | Wed, 08 Nov 2017 15:27:23 +0000 |
parents | 1e44d666ced1 |
children |
line wrap: on
line source
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html> <head> <title>Playing with Linked Data, Jamendo, Geonames, Mazzle and Songbird</title> <script language="javascript"> /* Jesse Ruderman * July 18, 2004 * * Remaining problems: * IE sometimes crashes on exit after using the this script. * In IE, it is a little ugly because IE doesn't support border-radius. * In IE, it does not work at standalone Flash URLs. */ function setupSeekBar() { setTimeout(initFlashControls, 100); function initFlashControls() { var count = 0; function tt(elem) { if (typeof elem.TotalFrames != "undefined") /* do not coerce elem.StopPlay to bool, because that breaks IE */ { addFlashControls(elem); ++count; } } var i, x; for (i = 0; x = document.getElementsByTagName("object")[i]; ++i) tt(x); for (i = 0; x = document.getElementsByTagName("embed")[i]; ++i) tt(x); } function addFlashControls(flash) { var controlsDiv = document.createElement("div"); /* Put the controls under the Flash. * * If the Flash is an <embed> in an <object>, we do not want to touch the <object>, because that would make * Mozilla re-test whether the <object> is broken and reset the <embed>. So in that case, we put the controls * under the <object>. */ var where = flash; while (where.parentNode.tagName.toLowerCase() == "object") where = where.parentNode; where.parentNode.insertBefore(controlsDiv, where.nextSibling); /* Construct controls using DOM2 instead of innerHTML. * In Mozilla, innerHTML= is like innerText= at standalone flash URLs. */ var table = document.createElement("table"); controlsDiv.appendChild(table); var row = table.insertRow(-1); var pauseButton = document.createElement("button"); pauseButton.appendChild(document.createTextNode("Pause")); var buttonCell = row.insertCell(-1); buttonCell.appendChild(pauseButton); var slider = row.insertCell(-1); slider.width = "100%"; var visibleSlider = document.createElement("div"); visibleSlider.style.position = "relative"; visibleSlider.style.height = "10px"; visibleSlider.style.width = "100%"; visibleSlider.style.MozBorderRadius = "4px"; visibleSlider.style.background = "#aaa"; slider.appendChild(visibleSlider); var thumb = document.createElement("div"); thumb.style.position = "absolute"; thumb.style.height = "20px"; thumb.style.width = "10px"; thumb.style.top = "-5px"; thumb.style.MozBorderRadius = "4px"; thumb.style.background = "#666"; visibleSlider.appendChild(thumb); var sliderWidth; var paused = false; var dragging = false; table.width = Math.max(parseInt(flash.width) || 0, 400); addEvent(pauseButton, "click", pauseUnpause); addEvent(slider, "mousedown", drag); addEvent(slider, "drag", function() { return false; }); /* For IE */ window.setInterval(update, 30); function pauseUnpause() { paused = !paused; pauseButton.style.borderStyle = paused ? "inset" : ""; if (paused) flash.StopPlay(); else flash.Play(); } function update() { sliderWidth = parseInt(getWidth(slider) - getWidth(thumb)); if (!paused && !dragging) thumb.style.left = parseInt(flash.CurrentFrame() / totalFrames() * sliderWidth) + "px"; } function dragMousemove(e) { var pageX = e.clientX + document.body.scrollLeft; /* cross-browser, unlike e.pageX, which IE does not support */ var pos = bounds(0, pageX - getX(slider) - 5, sliderWidth); var frame = bounds(1, Math.ceil(totalFrames() * pos / sliderWidth), totalFrames() - 2); thumb.style.left = pos + "px"; flash.GotoFrame(frame); } function release(e) { removeEvent(document, "mousemove", dragMousemove); removeEvent(document, "mouseup", release); if (!paused) flash.Play(); dragging = false; } function drag(e) { addEvent(document, "mousemove", dragMousemove); addEvent(document, "mouseup", release); dragging = true; dragMousemove(e); } /* Boring functions, some of which only exist to hide differences between IE and Mozilla. */ function bounds(min, val, max) { return Math.min(Math.max(min, val), max); } function totalFrames() { /* This is weird. TotalFrames differs between IE and Mozilla. CurrentFrame does not. */ if (typeof flash.TotalFrames == "number") return flash.TotalFrames; /* IE */ else if (typeof flash.TotalFrames == "function") return flash.TotalFrames(); /* Mozilla */ else return 1; /* Partially loaded Flash in IE? */ } function getWidth(elem) { if (document.defaultView && document.defaultView.getComputedStyle) return parseFloat(document.defaultView.getComputedStyle(elem,null).getPropertyValue("width")); /* Mozilla */ else return parseFloat(elem.offsetWidth); /* IE (currentStyle.width can be "auto" or "100%") */ } function getX(elem) { if (!elem) return 0; return (elem.offsetLeft) + getX(elem.offsetParent); } function addEvent(elem, eventName, fun) { if (elem.addEventListener) /* Mozilla */ elem.addEventListener(eventName, fun, false); else /* IE */ elem.attachEvent("on" + eventName, fun); } function removeEvent(elem, eventName, fun) { if (elem.addEventListener) elem.removeEventListener(eventName, fun, false); else elem.detachEvent("on" + eventName, fun); } } } </script> </head> <body onload="setupSeekBar();"> <h1>Playing with Linked Data, Jamendo, Geonames, Mazzle and Songbird</h1> <hr noshade><center> <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="1280" height="800" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0"> <param name="movie" value="songibird-mix.swf"> <param name="play" value="true"> <param name="loop" value="True"> <param name="quality" value="low"> <embed src="songibird-mix.swf" width="1280" height="800" play="true" loop="True" quality="low" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"> </embed></object></center> <hr noshade> <div align=right> <em>Generated by <a href="http://www.unixuser.org/~euske/vnc2swf/">pyvnc2swf</a>-0.9.2</em> </div> <script type="text/javascript"> var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E")); </script> <script type="text/javascript"> var pageTracker = _gat._getTracker("UA-3327144-3"); pageTracker._initData(); pageTracker._trackPageview(); </script> </body></html>