Hallo,
ich habe eine Seite mit Typo3 erstellt und eine Flash-Animation eingefügt. Wenn ich nun die Seite im FE betrachte, ist an der Stelle, wo die Animation laufen sollte, nur eine Fläche zu sehen, aber keine Animation. Da steht als Fehlermeldung "Flash-Film nicht geladen". Wenn ich aber die HTML-Vorlage anschaue, läuft alles wunderbar. Woran liegt das?
Für Antworten bin ich dankbar.
PS: Ich benutze Typo3 4.0 und Flash 8.
Wie hast du denn den Flashfilm eingebunden ( Extension, direkt im Template, über TS)?
Wie sieht der Quellcode deines Templates aus (also der Teil wo der Flashfilm kommt) und wie sieht dann der selbe Teil später im FE aus?
Ich habe den Flashfilm direkt im Template eingebunden. Das sieht so aus:
<!-- ###DOKUMENT### begin -->
<script language="JavaScript" type="text/javascript">
<!--
// -----------------------------------------------------------------------------
// Globale Variablen
// Erforderliche Hauptversion von Flash
var requiredMajorVersion = 6;
// Erforderliche Unterversion von Flash
var requiredMinorVersion = 0;
// Erforderliche Flash-Revision
var requiredRevision = 0;
// Die unterstützte JavaScript-Version
var jsVersion = 1.0;
// -----------------------------------------------------------------------------
// -->
</script>
<script language="VBScript" type="text/vbscript">
<!-- // Visual Basic-Hilfsprogramm ist zur Ermittlung der Versionsinformationen des Flash Player ActiveX-Steuerelements erforderlich
Function VBGetSwfVer(i)
on error resume next
Dim swControl, swVersion
swVersion = 0
set swControl = CreateObject("ShockwaveFlash.ShockwaveFlash." + CStr(i))
if (IsObject(swControl)) then
swVersion = swControl.GetVariable("$version")
end if
VBGetSwfVer = swVersion
End Function
// -->
</script>
<script language="JavaScript1.1" type="text/javascript">
<!-- // Client-Browsertyp ermitteln
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>
<table cellspacing="0">
<tr width="100%">
<td width="800" colspan="3">
<script language="JavaScript" type="text/javascript">
<!--
var hasRightVersion = DetectFlashVer(requiredMajorVersion, requiredMinorVersion, requiredRevision);
if(hasRightVersion) { // sofern eine akzeptable Version ermittelt wurde
var oeTags = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="800" height="300" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab">'
+ '<param name="movie" value="../flash/oidfertig.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#f8c369" />'
+ '<embed src="../flash/oidfertig.swf" quality="high" bgcolor="#f8c369" width="800" height="300" name="oidfertig" align="middle" play="true" loop="true" allowscriptaccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer">'
+ '<\/embed>'
+ '<\/object>';
document.write(oeTags); // Flash-Film einbetten
} else { // Flash ist veraltet, oder das Plug-In wurde nicht ermittelt
var alternateContent = 'Alternativer HTML-Inhalt sollte hier platziert werden.'
+ 'Für diesen Inhalt ist der Macromedia Flash Player erforderlich.'
+ '<a href="http://www.macromedia.com/go/getflash" />Flash installieren</a>';
document.write(alternateContent); // Nicht aus Flash stammenden Inhalt einfügen
}
// -->
</script>
<noscript>
// Stellen Sie alternativen Inhalt für Browser bereit,
// die keine Skriptunterstützung bieten bzw. in denen Skripts deaktiviert wurden.
Alternativer HTML-Inhalt sollte hier platziert werden. Für diesen Inhalt ist der Macromedia Flash Player erforderlich.
<a href="http://www.macromedia.com/go/getflash/">Flash installieren</a>
</noscript>
</td>
</tr>
<tr>
<td>
###LINKS###
</td>
<td>
###INHALT###
</td>
<td>
###RECHTS###
</td>
</tr>
</table>
<p>###UNTEN###</p>
<!-- ###DOKUMENT### end -->
Im FE sieht es dann so aus:
...
<body>
<script>
<!--
// -----------------------------------------------------------------------------
// Globale Variablen
// Erforderliche Hauptversion von Flash
var requiredMajorVersion = 6;
// Erforderliche Unterversion von Flash
var requiredMinorVersion = 0;
// Erforderliche Flash-Revision
var requiredRevision = 0;
// Die unterstützte JavaScript-Version
var jsVersion = 1.0;
// -----------------------------------------------------------------------------
// -->
</script>
<script>
<!-- // Visual Basic-Hilfsprogramm ist zur Ermittlung der Versionsinformationen des Flash Player ActiveX-Steuerelements erforderlich
Function VBGetSwfVer(i)
on error resume next
Dim swControl, swVersion
swVersion = 0
set swControl = CreateObject("ShockwaveFlash.ShockwaveFlash." + CStr(i))
if (IsObject(swControl)) then
swVersion = swControl.GetVariable("$version")
end if
VBGetSwfVer = swVersion
End Function
// -->
</script>
<script>
<!-- // Client-Browsertyp ermitteln
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>
<table>
<tr>
<td>
<script>
<!--
var hasRightVersion = DetectFlashVer(requiredMajorVersion, requiredMinorVersion, requiredRevision);
if(hasRightVersion) { // sofern eine akzeptable Version ermittelt wurde
var oeTags = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="800" height="300" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab">'
+ '<param name="movie" value="../flash/oidfertig.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#f8c369" />'
+ '<embed src="../flash/oidfertig.swf" quality="high" bgcolor="#f8c369" width="800" height="300" name="oidfertig" align="middle" play="true" loop="true" allowscriptaccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer">'
+ '<\/embed>'
+ '<\/object>';
document.write(oeTags); // Flash-Film einbetten
} else { // Flash ist veraltet, oder das Plug-In wurde nicht ermittelt
var alternateContent = 'Alternativer HTML-Inhalt sollte hier platziert werden.'
+ 'Für diesen Inhalt ist der Macromedia Flash Player erforderlich.'
+ '<a href="http://www.macromedia.com/go/getflash" />Flash installieren</a>';
document.write(alternateContent); // Nicht aus Flash stammenden Inhalt einfügen
}
// -->
</script>
<noscript>
// Stellen Sie alternativen Inhalt für Browser bereit,
// die keine Skriptunterstützung bieten bzw. in denen Skripts deaktiviert wurden.
Alternativer HTML-Inhalt sollte hier platziert werden. Für diesen Inhalt ist der Macromedia Flash Player erforderlich.
<a href="http://www.macromedia.com/go/getflash/">Flash installieren</a>
</noscript>
</td>
</tr>
...
An deiner Stelle würde ich die Scripts erstmal vernünftig auslagern (.js-Datei). Dies ist kein direkter Lösungsansatz, aber wenn Du Extensions und Templates weiter anpasst, bist Du um jede Zeile froh, die ausgelagert wird/ist.
grüsse
edit:
ausserdem dein Doctype wär dennoch interessant aus dem Frontend 😉 .
Was meinst du mit Doctype?
Dein Frontend-Quellcode, den Du gepostet hast, ist nicht komplett. Genau aber der Doctype und der Headbereich (u.a. inkl der charset-Config) sind für die HTML-Ausgabe von grundlegender Bedeutung.
Hier noch der Doctype plus Charset:
<!DOCTYPE html
PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<!--
This website is powered by TYPO3 - inspiring people to share!
TYPO3 is a free open source Content Management Framework initially created by Kasper Skaarhoj and licensed under GNU/GPL.
TYPO3 is copyright 1998-2006 of Kasper Skaarhoj. Extensions are copyright of their respective owners.
Information and contribution at http://typo3.com/ and http://typo3.org/
-->
Ich hoffe, das reicht dir.