XML-Code aus dynamischer PHP-Datei einbinden

chrisbergr

Erfahrenes Mitglied
Hallo Flashexperten!

Ich hätte da mal ein Problem. Auf der Arbeit bin ich gezwungen, mit Flash zu arbeiten, und das obwohl ich absolut nichts mit anfangen kann.
Aber dennoch habe ich irgendwie alles so hinbekommen, wie verlangt. Eine SWF-Datei, die Informationen aus einer XML-Datei ausgibt.
Code:
var myLoader:URLLoader = new URLLoader();
var myURL = new URLRequest("playlist.xml")
myLoader.load(myURL);
myLoader.addEventListener(Event.COMPLETE, onLoadComplete);
var myXML:XML; 
function onLoadComplete(evt : Event):void {
 
 XML.ignoreComments = true;    
 
 XML.ignoreWhitespace = true;
 
 myXML = new XML(evt.target.data); 
 
 land.appendText(myXML.land.text().toString());
 region.appendText(myXML.region.text().toString());
 stadt.appendText(myXML.stadt.text().toString());
 
} 
stop();
Nun müssen die Informationen aber dynamisch aus Datenbanken und Dateisystem ausgelesen werden, also muss eine mit PHP erzeugte XML-Datei her.
Code:
var myURL = new URLRequest("xmlcreate.php")
Überraschenderweiße geht nun aber gar nichts mehr, und das trozt
PHP:
header('Content-Type: text/xml');
 
header('Content-Disposition: inline; filename=xmlcreate.xml');

Kann mir da vielleicht jemand weiterhelfen, in dem er mir sagt, warum ActionScript nicht damit klar kommt und wie ich das beheben könnte?

Gruß und Dank

Christian
 
Es passiert genau das selbe, gar nichts. Zu sehen bekomm ich die eingebundene, statiche Hintergrundgrafik und keinerlei Texte werden geladen.
 
Wow Tobias, ich bin dir zu großem Dank verpflichtet. Ich hatte zwar nicht diesen von dir angesprochenen Fehler, dafür hast du mich darauf gebracht, mir die PHP-Datei einmal im Browser anzusehen. Wie simpel!

Jetzt weiß ich, dass ich nur einen Parse Error bekommen, wenn die Zeile
Code:
<?xml version="2.0" encoding="utf-8"?>
ausserhalb von <?php ... ?> steht.

Irgendwie habe ich in meiner Flash-Unsicherheit gedacht, dass der Fehler nur am ActionScript liegen kann.

Vielleicht hast du ja noch eine kurze Idee für mein letztes Problem, nämlich die einzubindende Datei variable zu machen. Die SWF-Datei binde ich über das hier mit sicherheit bekannte SWFObject in HTML ein.
Mittels
Code:
s1.addVariable('file','videoplaylist.xml');
möchte ich definieren, welche Datei eingebunden wird.
Folgender ActionScript-Code führt jedoch leider nicht zum Erfolg:
Code:
var xmlfile = _root.file;

var myURL = new URLRequest(xmlfile);
Warscheinlich ist das einfach der falsche Syntax?

Gruß
 
Hi,

ich verwende zwar kein SWFObject (sondern meine eigene Lösung), aber ich denke, Du musst die Variable explizit als FlashVars-Parameter setzen:
Code:
s1.addVariable('flashvars','file=videoplaylist.xml');

Gruß
.
 
Guten Morgen.

Ich glaube das wäre zu einfach gewesen, habs zwar ausprobiert, aber wie erwartet war das nicht des Rätsels Lößung.
Die Funktion addVariable erstellt nämlich schon den Parameter Flashvars.

Vielleicht hast du oder jemand anderes ja noch eine andere Idee.

Gruß
 
Hallo nochmal. Ich möchte hier mal den aktuellen Stand zeigen. Da habe ich immernoch ein Problem.
Und zwar tut die Flash-Datei so, als würde sie nichts übergeben bekommen. Habe es sowohl mit
HTML:
            <script type="text/javascript">
    var s1 = new SWFObject("film2.swf","mpl","229","104","9");
    s1.addParam('menu','false');
    s1.addParam('FlashVars','xmlfile=xmlcreate.php');
    s1.write("obenlinks");
            </script>
als auch mit
HTML:
s1.addVariable('xmlfile','xmlcreate.php');
versucht, was aber im Prinzip aufs gleiche hinaus läuft.

AS sieht folgendermaßen aus:
Code:
var xmlfile:String = "";
if(xmlfile == ""){
 // error and/or troubleshooting message
 
 land.appendText("x");
 region.appendText("x");
 stadt.appendText("x");
} else {   
 var myLoader:URLLoader = new URLLoader();
 
 var myURL = new URLRequest(xmlfile);
 
 myLoader.load(myURL);
 
 myLoader.addEventListener(Event.COMPLETE, onLoadComplete);
 
 var myXML:XML; 
 
 function onLoadComplete(evt : Event):void {
  
  XML.ignoreComments = true;    
  
  XML.ignoreWhitespace = true;
  
  myXML = new XML(evt.target.data); 
  
  land.appendText(myXML.land.text().toString());
  region.appendText(myXML.region.text().toString());
  stadt.appendText(myXML.stadt.text().toString());
  
 } 
}
stop();

Am Anfang deklariere ich die Variable xmlfile, da ich sonst immer eine Fehlermeldung in Flash bekomme. Kann natürlich daran liegen, da bei der Veröffentlichung diese noch nicht gesetzt ist. Aber bei der Ausgabe im Browser bekomm ich auch ohne keine Informationen.

Ich habe das mal angehängt, vielleicht kann sich das ja mal jemand kurz ansehen.

Hab morgen Abgabe und bin hier echt am schwitzen.. Egal wo ich was dazu gefunden habe, überall hat das so auf die Art wie ich es jetzt habe geklappt..

Weiß leider überhaupt nicht mehr weiter.

Gruß

// EDIT: An dem SWFObject liegt es auch nicht, habe das zu testzwecken auch mal auf konvenzionelle Weiße probiert. Die XML-Datei hatte auch einen Fehler, anstelle der Version 2.0 muss ein 1.0, was aber auch nichts ändert.
 

Anhänge

  • flashproblem.zip
    53,2 KB · Aufrufe: 42
Zuletzt bearbeitet:
Ich habe den Fehler gefunden, da ich AS3 benutze, muss ich mittels "root.loaderInfo.parameters.xmlfile" auf die Flashvar zugreifen..

Danke nochmal. :)
 

Neue Beiträge

Zurück