Embedding Movies with Flash, Part II: Basic Properties: Embedding Multiple Objects - Doc JavaScript | WebReference

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:

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

http://www.internet.com


Produced by Yehuda Shiran and Tomer Shiran
All Rights Reserved. Legal Notices.
Created: June 18, 2001
Revised: June 18, 2001

URL: http://www.webreference.com/js/column86/2.html