LOADING
Loading
Hi , welcome back.
LogoutLOGOUT
 
  Lost password?  
Hi
 




 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
  #1  
Old 06-16-2005, 09:52 PM
lestat1124 lestat1124 is offline
Registered User
 
Join Date: Jan 2005
Posts: 5
Rep Power: 0
lestat1124 is on a distinguished road
Enhancing My Flash Player Inspector (Sniffer)

Hello All-

Ok I'm having a problem that maybe someone can shed some light on. I have been scouring the web for about 3 days now trying to find the solution that I know exist but just keeps hiding from me. Ok here is the break down, I have JavaScript checking for type of browser and then presence of the flash player. If the flash player is not found, then an alt. image its set in its place. I used Moock FPI if anyone is familiar with his work. Its an excellent detector btw...and I highly recommend it. Ok now that all that is out the way...here is what I'm trying to do.

When flash is not present and the alt image loads in it place, I want to prompt the user to download the flash player. Now the way its currently set up, this works fine in Internet Explorer, but doesn't in Netscape and Firefox. What it does in those two browsers is places the alt image correctly and then drops down a bar at the top of the browser that states that a plugin is needed to view the content. Its not a very informative bar and the bar doesn't tell you what plugin is actually needed until you click on it. So I went out to a number of corporate entertainment and news sites to see how they were handling the situation. Well if you check www.nbc.com and www.cnn.com, they have adjusted their JavaScript code to prompt the user to download flash in Netscape in the same manner as IE. For Firefox, they are in the same situation as myself. (Probably haven't felt there were enough users to make the upgrade) Whatever the case, If I could at least figure out how to get Netscape to prompt the Auto-Install Flash Player to launch after the alt image is displayed...I'm sure my Bosses will be satisfied enough to allow me to get back to my everyday work which is beginning to pile up.

So with all that said, I am placing my JavaScript code below for you to see. If anyone has any ideas how to trigger the active X plugin for Netscape or Firefox...I would be very appreciative. Thanks in advance and let me know if you need me to explain anything else.

Code:
 
<SCRIPT LANGUAGE="JavaScript" type="text/javascript">
<!--
 
var requiredVersion = 6; 
var useRedirect = false;	
 
// System globals
var flash2Installed = false;	
var flash3Installed = false;	
var flash4Installed = false;	
var flash5Installed = false;	
var flash6Installed = false;	
var flash7Installed = false;	
var flash8Installed = false;	
var flash9Installed = false;	
var maxVersion = 9;			 
var actualVersion = 0;		 
var hasRightVersion = false;	
var jsVersion = 1.0;			
// -->
</SCRIPT> 
<SCRIPT LANGUAGE="JavaScript1.1" type="text/javascript">
<!--
// Check the browser...we're looking for ie/win
var isIE = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;	// true if we're on ie
var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false; // true if we're on windows
 
// This is a js1.1 code block, so make note that js1.1 is supported.
jsVersion = 1.1;
// Write vbscript detection on ie win. IE on Windows doesn't support regular
// JavaScript plugins array detection.
if(isIE && isWin){
document.write('<SCR' + 'IPT LANGUAGE=VBScript\> \n');
document.write('on error resume next \n');
document.write('flash2Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.2"))) \n');
document.write('flash3Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.3"))) \n');
document.write('flash4Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.4"))) \n');
document.write('flash5Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.5"))) \n'); 
document.write('flash6Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.6"))) \n'); 
document.write('flash7Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.7"))) \n');
document.write('flash8Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.8"))) \n');
document.write('flash9Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.9"))) \n');
document.write('<\/SCR' + 'IPT\> \n'); // break up end tag so it doesn't end our script
}
// -->
</SCRIPT>
 
<SCRIPT LANGUAGE="JavaScript" type="text/javascript">
<!--
function detectFlash() { 
// If navigator.plugins exists...
if (navigator.plugins) {
	// ...then check for flash 2 or flash 3+.
	if (navigator.plugins["Shockwave Flash 2.0"]
		|| navigator.plugins["Shockwave Flash"]) {
	 var isVersion2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
	 var flashDescription = navigator.plugins["Shockwave Flash" + isVersion2].description;
	 var flashVersion = parseInt(flashDescription.substring(16));
	 flash2Installed = flashVersion == 2;	
	 flash3Installed = flashVersion == 3;
	 flash4Installed = flashVersion == 4;
	 flash5Installed = flashVersion == 5;
	 flash6Installed = flashVersion == 6;
	 flash7Installed = flashVersion == 7;
	 flash8Installed = flashVersion == 8;
	 flash9Installed = flashVersion >= 9;
	}
}
 
// Loop through all versions we're checking, and
// set actualVersion to highest detected version.
for (var i = 2; i <= maxVersion; i++) { 
	if (eval("flash" + i + "Installed") == true) actualVersion = i;
}
 
// If we're on msntv (formerly webtv), the version supported is 4 (as of
// January 1, 2004). Note that we don't bother sniffing varieties
// of msntv. You could if you were sadistic...
if(navigator.userAgent.indexOf("WebTV") != -1) actualVersion = 4; 
 
// DEBUGGING: uncomment next line to display flash version
// alert("version detected: " + actualVersion);
 
// We're finished getting the version on all browsers that support detection.
// Time to take the appropriate action.
// If the user has a new enough version...
if (actualVersion >= requiredVersion) {
	// ...then we'll redirect them to the flash page, unless we've
	// been told not to redirect.
	if (useRedirect) {
	 // Need javascript1.1 to do location.replace
	 if(jsVersion > 1.0) {
		// It's safe to use replace(). Good...we won't break the back button.
		window.location.replace(flashPage); 
	 } else {
		// JavaScript version is too old, so use .location to load
		// the flash page.
		window.location = flashPage;
	 }
	}
	// If we got here, we didn't redirect. So we make a note that we should
	// write out the object/embed tags later.
	hasRightVersion = true;				
} else { 
	// The user doesn't have a new enough version.
	// If the redirection option is on, load the appropriate alternate page.
	if (useRedirect) {
	 // Do the same .replace() call only if js1.1+ is available.
	 if(jsVersion > 1.0) {
		window.location.replace((actualVersion >= 2) ? upgradePage : noFlashPage);
	 } else {
		window.location = (actualVersion >= 2) ? upgradePage : noFlashPage;
	 }
	}
}
}
detectFlash(); // call our detector now that it's safely loaded. 
 
// -->
</SCRIPT>
<BODY BGCOLOR="#FFFFFF">
<SCRIPT LANGUAGE="JavaScript" type="text/javascript">
<!--
// In this section we set up the content to be placed dynamically on the page.
// Customize movie tags and alternate html content below.
if (!useRedirect) {	// if dynamic embedding is turned on
if(hasRightVersion) { // if we've detected an acceptable version
	var oeTags = '<OBJECT CLASSID="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'
	+ 'WIDTH="775" HEIGHT="218"'
	+ 'CODEBASE="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0">'
	+ '<PARAM NAME="MOVIE" VALUE="home_sample.swf">'
	+ '<PARAM NAME="PLAY" VALUE="true">'
	+ '<PARAM NAME="LOOP" VALUE="false">'
	+ '<PARAM NAME="QUALITY" VALUE="high">'
+ '<PARAM NAME="WMODE" value="transparent">'
	+ '<PARAM NAME="MENU" VALUE="false">'
	+ '<EMBED SRC="home_sample.swf"'
	+ 'WIDTH="778" HEIGHT="208"'
	+ 'PLAY="true"'
+ 'WMODE="transparent"'
	+ 'LOOP="false"'
	+ 'QUALITY="high"'
	+ 'MENU="false"'
	+ 'TYPE="application/x-shockwave-flash"'
	+ 'PLUGINSPAGE="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash">'
	+ '<\/EMBED>'
	+ '<\/OBJECT>';
	document.write(oeTags); // embed the flash movie
} else { // flash is too old or we can't detect the plugin
	// NOTE: height, width are required!
	var alternateContent = '<IMG SRC="grfx/HRC_alt_image.gif" HEIGHT="208" WIDTH="778">'
+ '<OBJECT CLASSID="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'
	+ 'WIDTH="1" HEIGHT="1"'
	+ 'CODEBASE="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0">'
	+ '<PARAM NAME="MOVIE" VALUE="home_sample.swf">'
	+ '<PARAM NAME="PLAY" VALUE="true">'
	+ '<PARAM NAME="LOOP" VALUE="false">'
	+ '<PARAM NAME="QUALITY" VALUE="high">'
+ '<PARAM NAME="WMODE" value="transparent">'
	+ '<PARAM NAME="MENU" VALUE="false">'
	+ '<EMBED SRC="home_sample.swf"'
	+ 'WIDTH="1" HEIGHT="1"'
	+ 'PLAY="true"'
+ 'WMODE="transparent"'
	+ 'LOOP="false"'
	+ 'QUALITY="high"'
	+ 'MENU="false"'
	+ 'TYPE="application/x-shockwave-flash"'
	+ 'PLUGINSPAGE="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash">'
	+ '<\/EMBED>'
	+ '<\/OBJECT>'
 
	document.write(alternateContent); // insert non-flash content
}
}
// -->
</SCRIPT>
<NOSCRIPT>
<IMG SRC="grfx/sample_alt_image.gif" HEIGHT="208" WIDTH="778">
 
</NOSCRIPT>
Reply With Quote
 


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
The History of Flash theUKdude Members Cafe 29 01-24-2013 08:24 AM
The News From Adobe on the Future of Flash Platform FlashMove Chit Chat Lobby 0 11-10-2011 09:55 AM
Flash Player and ActionScript Sessions at Max 2011 FlashMove General Flash 0 06-27-2011 07:28 PM
AS2 working in Flash Player 6 but not Player 7+ Beany Actionscript 2.0 6 07-19-2007 06:39 PM
Flash 7 in the Flash 6 player Ultraniblet Flash MX 2004 1 08-05-2004 03:37 PM




All times are GMT. The time now is 06:27 AM.