May 29, 2001 - Embedding Flash Movies
May 29, 2001 Embedding Flash Movies Tips: May 2001
Yehuda Shiran, Ph.D.
|
One of the "tiny" details is embedding the Flash object. The JavaScript file flashmoviecheck.js
does exactly this, and other stuff. It also checks for Flash plug-ins, and minimum player version. It is different than the sound-based flashsoundcheck.js
in that the dimensions should be adjusted to the movie size. We use the 100% value for both WIDTH
and HEIGHT
. We also changed the default quality to "high"
. Here is the code:
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, 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="sonify" 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="sonify"' +
'pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"></embed></OBJECT>');
window.document.sonify.Rewind();
}
function sonified_flash(myFrame){
if(!Flash_checkForMinPlayer()) {return;}
mySwf = window.document.sonify;
if (mySwf.PercentLoaded()<100) return
mySwf.GotoFrame(myFrame);
mySwf.GotoFrame(0);
}