2009-07-22 3 views
1

Ich habe einen echten Albtraum zu versuchen, was eine sehr einfache Aufgabe sein sollte. Wenn ich eine statische oder unabhängige SWF-Datei einbette, erscheint sie auf unserer von ModX betriebenen Website. Wenn es jedoch um eine dynamische SWF-Datei geht (eine, die auf eine XML-Datei und Bilddateien verweist), kann ich das Ding überhaupt nicht auftauchen lassen. Nach dem Flash-Menü-Programm, das ich habe ich den folgenden Code im Kopfteil der Seite einfügen:Wie kann ich eine dynamische SWF-Datei in eine ModX-basierte Webseite einfügen?

<script type="text/javascript" src="swfobject.js"></script> <script type="text/javascript" src="flying.js"></script> 

(mit den Dateien im Stammverzeichnis natürlich platziert) und dann in dem BODY-Abschnitt soll ich einfügen:

<!-- Flash Menu Labs – www.flashmenulabs.com --> 
<div id="FlashMenuLabs" style="position:absolute; top:0px; padding-left:0px; z-index:0;"> 
    You need to upgrade your Flash Player or to allow javascript to enable Website menu. </br> 
    <a href="http://www.adobe.com/go/getflashplayer">Get Flash Player</a>    
</div> 
< script type="text/javascript"> 
// <![CDATA[ 
    var so = new SWFObject("menu.swf", "menu", "185", "440", "8", "#000000"); 
    so.addVariable("page _ code", "a _ b _ c"); 

    so.addParam("wmode", "transparent"); 
    so.addParam("scale", "noscale"); 
    so.addParam("salign", "TL"); 
    so.write("FlashMenuLabs"); 
// ]]> 
</script> 

Das funktioniert nicht. Die Dateien befinden sich in einem Ordner mit dem Namen icpmenu_es (ein Unterordner von flash), wo die menu.swf referenziert wird. Die abhängigen Dateien (einschließlich der XML-, PNG- und SWF-Dateien) befinden sich in einem Unterordner mit der Bezeichnung menu_data. Es gibt zwei XML-Dateien: open_menu_data.xml und menu_data.xml und ich kann die letzteren nicht bearbeiten.
Dann habe ich den hier <EMBED> Weg versucht:

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="185" height="440"> <param name="base" value="http://www.ideal-country-property.com/"> <param name="movie" value="/flash/icpmenu_es/menu.swf"> <param name="id" value="ICPmenuES"> <param name="menu" value="false"> <param name="slalign" value="tl"> <param name="quality" value="high"> <param name="wmode" value="transparent"> <param name="scale" value="noscale"> <embed src="/flash/icpmenu_es/menu.swf" menu="false" quality="high" wmode="transparent" scale="noscale" width=185 height=440 type="application/x-shockwave-flash" id="ICPmenuES" salign="tl" base="http://www.ideal-country-property.com/" pluginspace="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"> </embed> </object>` 

Das funktioniert auch nicht. Wenn mir jemand helfen könnte, mich in die richtige Richtung zu lenken, wäre ich sehr dankbar. In anderen Foren habe ich Leute gesehen, die sich darauf beziehen, den Verweis auf XML in der SWF zu bearbeiten, aber ich kann nicht sehen, wo ich das machen soll. Ein Neuling Programmierer zu sein hilft auch nicht viel!

+0

Dank Hilfe von der Google-Gruppe SWFObject, habe ich die Wurzel des Problems gefunden. In ModX müssen wir das Feld "Alias" des Dokuments eingeben (unter der Registerkarte "Allgemein" den Namen der Seite plus "_en" oder "_es" abhängig davon, ob die Seite in Englisch oder Spanisch ist. Dies erzeugt dann einen Alias Link für die Seite In diesem Fall ist der Alias ​​meiner Testseite "test_es", so dass ein Link von http://www.ideal-country-property.com/es/test entsteht Die SWF-Datei findet die JS-Dateien OK, versucht jedoch, die XML-Dateien in einem Ordner namens "ES" zu finden, der nicht existiert. – Stoffer

+0

Übrigens können Sie den Verlauf in Google Groups verfolgen: http: // groups .Google.com/group/swfobject/browse_thread/thread/6bc280b258e4ecff/3b661c1ae996afd1 # 3b661c1ae996afd1 Unsere ISP, die auch unsere Real Estate-Software Setup ModX so (wie mit all ihren Immobilien-Kunden) Setup, so dass ich nicht wirklich damit herumhauen will zu viel. Ich brauche nur eine Möglichkeit für die SWF, korrekt auf die XML-Datei zuzugreifen und sie nicht in einem virtuellen "ES" -Ordner zu suchen. Hoffe, das ist klar. Prost. Chris. – Stoffer

Antwort

0

Flash-Pfade können sehr schwierig werden. Flash-Pfade sind relativ zu der HTML-Datei, in der die SWF-Datei aufgerufen wird, nicht in der SWF-Datei. Also, wenn Sie in einem .html wie sind:

misite.com/news/article.html und ich rufe eine .swf von hier mit „/anotherfolderinroot/test.swf“ Ihr relativer Pfad innerhalb der .swf ist noch misite.com/news/

so, einen Film oder xml ohne absolute Pfade innerhalb der .swf Laden, zum Beispiel „data.xml“ Blitz für misite.com/news/data.xml suchen

Achten Sie darauf, dass der absolute Pfad mit Domänennamen verwendet wird, die im Aufruf von .html enthalten sind, wie "http://www.mydomain.com/media/mymovie.swf", die Flash Security-Warnungen auslösen und Dateien beim Zugriff auf die URL nicht laden können ohne www wie "http://misite.com/news/article.html" a nimm dies auf, solange du kannst.

Ich hoffe, es hilft.

+0

Danke Pablo. Das hat den Trick gemacht. Du bist ein Star. Saludos. – Stoffer

0

Haben Sie Zugriff auf die Apache-Protokolle?

Ich habe Probleme in der Vergangenheit erlebt, wenn modx nicht glücklich mit den Datei/Ordner Berechtigungen ist (wenn sie zum Beispiel von Gruppe beschreibbar sind) dann wird es bestimmte Inhalte nicht anzeigen und nur die Apache-Protokolle geben Einblick .

+0

Es tut mir leid, ich nicht. Unser ISP ist ziemlich tight, wenn es darum geht, mir Zugriff auf Apache zu gewähren. – Stoffer

+0

Eigentlich, seit ich das geschrieben habe, habe ich das Problem gefunden, aber ich kann keine Lösung sehen. Das Problem liegt in den Pfaden zu der SWF-Datei und den JS-Dateien. Um es zum Laufen zu bringen, muss ich ein ' href =" http://www.ideal-country-property.com/icpmenu_es/ "' in den HEAD-Abschnitt setzen, bevor es funktioniert. Das Problem ist, dass auf unserer Site andere Scripts an anderen Orten laufen, so dass ich das BASE nicht auf das spezifische Verzeichnis einstellen kann, in dem sich die "menu.swf" befindet. Was ich nicht verstehen kann ist, warum das Einfügen eines relativen Pfades in die CDATA nicht funktioniert. Gibt es einen speziellen Code, der eingefügt werden muss? – Stoffer