Zurück   Flashforum > Flash > Flash Fortgeschritten > Flash 4 und Flash 5

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 27-06-2006, 22:01   #1 (permalink)
Neuer User
 
Registriert seit: Aug 2004
Beiträge: 2
Exclamation Einbinden mit Javascript, umgehen des Steuerelements im IE

Hallo,

möglicherweise wurde das alles schon lang und breit erörtert, aber ich finde dennoch nichts sinnvolles:
Ich binde Flash mit einem Javascript von Adobe ein, um die Klickbestätigung als Steuerelement im IE zu umgehen.
Da ich Variablen über GET übergebe, habe ich nun das Problem, dass ich keine so rechte Ahnung habe, wie ich die Variablen mit dieser Technik weitergeben kann.
Hier wird die swf eingebunden:
HTML-Code:
<script type="text/javascript">
AC_FL_RunContent('codebase','http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0','width','752','height','132','src','flash','quality','high','pluginspage','http://www.macromedia.com/go/getflashplayer','movie','navi','wmode','transparent' ); 
</script>

<noscript>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="752" height="132">
  <param name="movie" value="navi.swf">
  <param name="quality" value="high">
  <PARAM NAME="wmode" VALUE="transparent">
  <embed src="navi.swf?navi=<? echo $_SESSION['navi']?>" quality="high" wmode="transparent" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="752" height="132"></embed>
</object>
</noscript>
Das komplette Script gibt's hier:
http://www.adobe.com/devnet/activeco...devletter.html

Die Übergabe scheint zu klappen, allerdings macht es den Eindruck, das die swf die Variablen ned erhält, vermutlich wegen der Einbettung. Mit EMBED, also ohne JS funzt es ja auch.

Jemand eine Idee??
kapiersned ist offline   Mit Zitat antworten
Alt 28-06-2006, 07:13   #2 (permalink)
Banned
 
Benutzerbild von projecktx
 
Registriert seit: Sep 2003
Beiträge: 2.071
1) das thema allgemein wurde hier schon in über 20 seitenlanen beiträgen bearbeitet....

2) das was du allerdings bezüglich der Variable erzählst, habe ich bisher noch nie gehört, meinst du das übergeben der flashvariablen .. also diese zeile hier:
PHP-Code:
<embed src="navi.swf?navi=<? echo $_SESSION['navi']?>......
????????????????

wenn ja dürfte unten das letzte beispiel auf der seite mit deinem link dein problem lösen...

PHP-Code:
<script src="[path]/AC_ActiveX.jstype="text/javascript"></script> 
<script src="[path]/AC_RunActiveContent.js" type="text/javascript"></script> 
PHP-Code:
<script type="text/javascript">
AC_AX_RunContent( 'classid','clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFB','width','752','height','132','src','flash','quality','high','src','navi.swf?navi='+<? echo $_SESSION['navi']?>+'','wmode','transparent' ); 
</script>
müsste es sein

Geändert von projecktx (28-06-2006 um 07:14 Uhr)
projecktx ist offline   Mit Zitat antworten
Alt 28-06-2006, 11:51   #3 (permalink)
Neuer User
 
Registriert seit: Aug 2004
Beiträge: 2
Unhappy Hmh...

Zwar haut das hin, aber ich habe wieder die Steuerelementgeschichte, muss also im IE vorher klicken. :-(

Geändert von kapiersned (28-06-2006 um 12:01 Uhr)
kapiersned ist offline   Mit Zitat antworten
Alt 29-06-2006, 13:53   #4 (permalink)
code warrior
 
Benutzerbild von ActionMan
 
Registriert seit: Jun 2001
Ort: Dublin
Beiträge: 411
Lightbulb Komplettes Javascript ist noch besser

Hier eine viel bessere Lösung, weil von Flash8 beim Export generiert.
Funktioniert natürlich auch mit swfs aus älteren Versionen:

In den HEAD der Seite muss folgendes Javascript:
HTML-Code:
<script language="JavaScript">
//-----------------------------------------------------------------------------
// Globale Variablen FLASH ABFRAGE
var requiredMajorVersion = 8; // hier musst Du die Version eintragen, die Du benötigst
var requiredMinorVersion = 0;
var requiredRevision = 0;
var jsVersion = 1.0;// -----------------------------------------------------------------------------
var isIE  = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;
jsVersion = 1.1;
// JavaScript-Hilfsprogramm ist zur Ermittlung der Versionsinformationen des Flash Player Plug-Ins erforderlich
function JSGetSwfVer(i){
	// NS/Opera-Version >= 3 auf Flash-Plug-In im Plug-In-Array prüfen
	if (navigator.plugins != null && navigator.plugins.length > 0) {
		if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
			var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
      		var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;
			descArray = flashDescription.split(" ");
			tempArrayMajor = descArray[2].split(".");
			versionMajor = tempArrayMajor[0];
			versionMinor = tempArrayMajor[1];
			if ( descArray[3] != "" ) {
				tempArrayMinor = descArray[3].split("r");
			} else {
				tempArrayMinor = descArray[4].split("r");
			}
      		versionRevision = tempArrayMinor[1] > 0 ? tempArrayMinor[1] : 0;
            flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
      	} else {
			flashVer = -1;
		}
	}
	// MSN/WebTV 2.6 unterstützt Flash 4
	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
	// WebTV 2.5 unterstützt Flash 3
	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
	// älteres WebTV unterstützt Flash 2
	else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
	// Ermittlung in allen anderen Fällen nicht möglich
	else {
		
		flashVer = -1;
	}
	return flashVer;
} 
// Wenn der Funktionsaufruf ohne Parameter erfolgt, gibt diese Funktion einen Gleitkommawert zurück,
// bei dem es sich entweder um die Flash Player-Version oder um 0.0 handelt.
// Beispiel: Flash Player 7r14 gibt 7.14 zurück.
// Wenn reqMinorVer, reqMajorVer, reqRevision aufgerufen wird, wird 'true' zurückgegeben, sofern diese bzw. eine höhere Version verfügbar ist
function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision) 
{
 	reqVer = parseFloat(reqMajorVer + "." + reqRevision);
   	// Versionen rückwärts durchlaufen, bis die neueste Version gefunden wird	
	for (i=25;i>0;i--) {	
		if (isIE && isWin && !isOpera) {
			versionStr = VBGetSwfVer(i);
		} else {
			versionStr = JSGetSwfVer(i);		
		}
		if (versionStr == -1 ) { 
			return false;
		} else if (versionStr != 0) {
			if(isIE && isWin && !isOpera) {
				tempArray         = versionStr.split(" ");
				tempString        = tempArray[1];
				versionArray      = tempString .split(",");				
			} else {
				versionArray      = versionStr.split(".");
			}
			versionMajor      = versionArray[0];
			versionMinor      = versionArray[1];
			versionRevision   = versionArray[2];
			
			versionString     = versionMajor + "." + versionRevision;   // 7.0r24 == 7.24
			versionNum        = parseFloat(versionString);
        	// ist die Hauptrevision >= angeforderte Hauptrevision UND die Nebenversion >= angeforderte Nebenversion
			if ( (versionMajor > reqMajorVer) && (versionNum >= reqVer) ) {
				return true;
			} else {
				return ((versionNum >= reqVer && versionMinor >= reqMinorVer) ? true : false );	
			}
		}
	}	
	return (reqVer ? false : 0.0);
}
</script>
Das einzige, was Du hier anpassen musst, ist die Version, die abgefragt werden soll. (im Abschnitt globale Variablen)

im Body plazierst Du dann folgenden Code (natürlich angepasst an Deinen Film) dort, wo Dein Film erscheinen soll:
HTML-Code:
<script language="JavaScript" type="text/javascript">
<!-- 
var hasRightVersion = DetectFlashVer(requiredMajorVersion, requiredMinorVersion, requiredRevision);
if(hasRightVersion) {
    var oeTags = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'
    + 'width="600" height="250"'
    + 'codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab">'
    + '<param name="movie" value="derfilm.swf" /><param name="flashfilm" value="false" /><param name="quality" value="high" /><param name="wmode" value="transparent" /><param name="bgcolor" value="#010120" />'
    + '<embed src="derfilm.swf" menu="false" quality="high" wmode="transparent" bgcolor="#010120" '
    + 'width="600" height="250" name="header" align="middle"'
    + 'play="true"'
    + 'loop="false"'
    + 'quality="high"'
    + 'allowScriptAccess="sameDomain"'
    + 'type="application/x-shockwave-flash"'
    + 'pluginspage="http://www.macromedia.com/go/getflashplayer">'
    + '<\/embed>'
    + '<\/object>';
    document.write(oeTags); 
  } else {
    var alternateContent = '<img src="ersatz.gif" width=650 height=77 border=0 alt="Sie haben kein Flash">'
  	+ '<br>Flash Player required | Macromedia Flash Player erforderlich.'
   	+ '<a href=http://www.macromedia.com/go/getflash/>install Flash | Flash installieren</a>';
    document.write(alternateContent);
  }
// -->
</script>
<noscript>
	<img src="header.jpg" width=600 height=250 border=0 alt="Flash installieren!">
	<br>Für diesen Inhalt ist der aktuelle Macromedia Flash Player erforderlich.
  	<a href="http://www.macromedia.com/go/getflash/">Flash installieren</a>  	
</noscript>
Das klappt hervorragend und muss auch im IE nicht explizit aktiviert werden.
__________________
-=+ A c t i o n M a n +=-
It´s the man, not the machine
Nervös, gereizt, aggressiv? Klick hier

Geändert von ActionMan (29-06-2006 um 13:55 Uhr)
ActionMan ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 18:43 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele