Embedding Movies with Flash, Part II: Basic Properties: Embedding Multiple Objects - Doc JavaScript
Embedding Movies with Flash, Part II: Basic Properties
Embedding Multiple Objects
In this column we use an improved version of the JavaScript include file, flashcheck2.js
. This JavaScript include file is different from the one we have used in Column 85, flashmoviecheck.js
, in that it allows you:
- To embed multiple Flash objects on the same page.
- To embed a Flash object using a single line of JavaScript.
We accomplished the first enhancement above by adding a parameter to Flash_embedSWF()
. The file flashmoviecheck.js
includes a fixed ID
(for Internet Explorer) and a fixed NAME
(for Netscape Navigator). Both are set to "sonify"
. Setting a fixed object prevents us from setting two or more Flash objects on the same page. The file flashcheck2.js
answers this problem by letting you pass the ID
/NAME
as the second parameter to Flash_embedSWF()
. In this way, you can call Flash_embedSWF()
as many times as you want on the same page. The fundamental change is to replace the fixed string "sonify"
with a parameter. In document.writeln
statements, this is straightforward. In other JavaScript statements, we need to use the eval()
function to concatenate between fixed strings and a parameter.
We implemented the second enhancement by returning the Flash object from the function Flash_embedSWF()
, instead of generating it in the main program. The function Flash_embedSWF()
in flashcheck2.js
includes a statement for returning the Flash object to the caller:
return (eval('window.document.'+ id));
Here is flashcheck2.js:
winIEpass = ((navigator.appName.indexOf("Microsoft") != -1) && (navigator.appVersion.indexOf("Windows") != -1)) && (parseFloat(navigator.appVersion) >= 4) ? true : false; NNpass = ((navigator.appName == "Netscape") && (navigator.userAgent.indexOf("Mozilla") != -1) && (parseFloat(navigator.appVersion) >= 4) && (navigator.javaEnabled())) ? true : false; supportedBrowser = (winIEpass || NNpass) ? true : false; // check for Flash Plug-in in Mac or Win Navigator. // Get plug-in version. minPlayer = 4; var mySwf; function Flash_checkForPlugIn() { var plugin = (navigator.mimeTypes && navigator.mimeTypes["application/x-shockwave-flash"]) ? navigator.mimeTypes["application/x-shockwave-flash"]. enabledPlugin : 0; if (plugin) { var pluginversion = parseInt(plugin.description. substring(plugin.description.indexOf(".")-1)) if(pluginversion >= minPlayer) {return true;} } return false; } // vbscript check for Flash ActiveX control in windows IE if(supportedBrowser && winIEpass) { document.write( '<script language=VBScript>' + '\n' + 'Function Flash_checkForActiveX()' + '\n' + 'Dim hasPlayer, playerversion' + '\n' + 'hasPlayer = false' + '\n' + 'playerversion = 10' + '\n' + 'Do While playerversion >= minPlayer' + '\n' + 'On Error Resume Next' + '\n' + 'hasPlayer = (IsObject(CreateObject (\"ShockwaveFlash.ShockwaveFlash.\" & playerversion & \"\")))' + '\n' + 'If hasPlayer = true Then Exit Do' + '\n' + 'playerversion = playerversion - 1' + '\n' + 'Loop' + '\n' + 'Flash_checkForActiveX = hasPlayer' + '\n' + 'End Function' + '\n' + '<\/script>' ); } function Flash_checkForMinPlayer() { if(!supportedBrowser) return false; if(NNpass) return (Flash_checkForPlugIn()); if(winIEpass) return (Flash_checkForActiveX()); } function Flash_embedSWF(srcURL, id, swfbgColor) { if (!Flash_checkForMinPlayer()) return; var defaultColor = (document.bgColor != null) ? document.bgColor : "#ffffff"; var bgcolor = (swfbgColor != null) ? swfbgColor : defaultColor; document.writeln( '<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8- 444553540000"' + 'codebase="http://active.macromedia.com/flash2/ cabs/swflash.cab#version=4,0,0,0"' + 'ID="' + id + '" WIDTH="100%" HEIGHT="100%">' + '<PARAM NAME="movie" VALUE="' + srcURL + '">' + '<PARAM NAME="quality" VALUE="high">' + '<PARAM NAME="wmode" VALUE="transparent">'+ '<PARAM NAME="autostart" VALUE="false">'+ '<PARAM NAME="bgcolor" VALUE=' + bgcolor + '>' + '<embed src="' + srcURL + '" quality="high"' + 'bgcolor="' + bgcolor + '"' + 'width="100%" height="100%"' + 'type="application/x-shockwave-flash" NAME="' + id + '"' + 'pluginspage="http://www.macromedia.com/shockwave/ download/index.cgi?P1_Prod_Version=ShockwaveFlash"> </embed></OBJECT>'); eval('window.document.'+ id + '.Rewind()'); return (eval('window.document.'+ id)); } function sonified_flash(id, myFrame){ if(!Flash_checkForMinPlayer()) {return;} mySwf = eval('window.document.' + id); if (mySwf.PercentLoaded()<100) return mySwf.GotoFrame(myFrame); mySwf.GotoFrame(0); }
Next: How to play multiple flash movies
Produced by Yehuda Shiran and Tomer Shiran
All Rights Reserved. Legal Notices.
Created: June 18, 2001
Revised: June 18, 2001
URL: https://www.webreference.com/js/column86/2.html