dynamischer flashticker per .xml - wie laß ich den text durchgehent laufen

Ich habe mir das jetzt mal alles angeguckt und finde es recht interresant und würde es auch gerne nutzen ;)

Nur habe ich nicht direkt eine .xml file vorliegen sondern habe nur folgende ausgabe

http://www.borstenhorst.de/recent.php

das ist die ausgabe, gibt es eine Möglichkeit diese in den newsticker zu bekommen?

Danke fürs lesen.

Thomas
 
Hi,

nun ja, das ist ebenfalls eine XML-Ausgabe. Du gibst einfach das PHP-Script als Ladeziel für das XML-Objekt an:
PHP:
xm.load("meinphp.php");
Da diese Datei wahrscheinlich anders aufgebaut ist, als die Deines Vorgängers, müssten einige Änderungen beim Parsen der Daten erfolgen. Probier selbst einmal rum, indem Du z.B. die Namen der Knoten entsprechend änderst, und wenn Du dabei Probleme hast, melde Dich noch einmal, dann passe ich Dir das an.

Gruß
.
 
...habe das hier mit großem Interesse gelesen und mich gefragt, ob es möglich ist fremde Inhalte, egal wie sie strukturiert sind auf die gleiche Art zu laden - also statt

xm.load("ticker_r.xml");

ein

xm.load("http://www.irgendein.de/mustermann.xml");



Grüße
Andreas
 
Ja ist es, aber nicht mit diesem "Ticker". Das erfordert einen flexiblen "Parser", der mit den wahrscheinlichen Tags/Attributen und Verschachtelungstiefen rechnet. Eine Darstellung wirklich beliebiger XML-Dateien würde eine ähnliche Komplexizizät wie eine Browser-Rendering-Engine erfordern; was angezeigt werden soll (Text und Links) ist zwar simpel, dafür kann ich aber nicht unbedingt mit genormten Tagnamen und Attributen rechnen.

Handelt es sich um ein RSS-Feed, mit z.B. so einer Struktur:
Code:
<rss>
<channel>
    <item>
        <title></title>
        <link></link>
        <description></description>
    <item>
</channel>
</rss>
und vielleicht noch einer Überschrift, ist es natürlich kein Problem das für alle möglichen Quellen anzuzeigen.

Gruß
.
 
also habe bei der Sache nur ein Problem, ich habe absolut keine ahnung von flash :)

wie müsste ich das denn anpassen und http://borstenhorst.de/recent.php als source verwenden zu können?


muss ich hier etwas ändern? bzw was?

Code:
 System.useCodepage = true;
 
 var spacer = " ---- "; // Trennzeichen zwischen den Items
 
 var xm = new XML();
 xm.ignoreWhite = true;
 
 xm.onLoad = function() {
 	parse(this);
 }
 
 // Statt eine Datei zu laden, kann der Feed abgefragt werden
 xm.load("recent.php");
 
 function parse(obj) {
 	var ostr = "";
 	while (obj.nodeName != "channel") {
 		obj = obj.childNodes[0];
 	}
 	for (var i=0; i<obj.childNodes.length; i++) {
 		var item = obj.childNodes[i];
 		for (var h=0; h<item.childNodes.length; h++) {
 			var nstr = item.childNodes[h].firstChild.toString();
 			// Zeilenumbrüche entfernen:
 			for (var k=0; k<nstr.length; k++) {
 		    	if (nstr.charCodeAt(k) == 10 || nstr.charCodeAt(k) == 13) {
 		    		nstr = nstr.substr(0, k) + nstr.substr(k + 2);
 				}
 			}
 			if (item.childNodes[h].nodeName == "link") {
 		    	// Links werden in blau dargestellt und "http://" vor das href-Attribut gesetzt:
 				var lstr =  nstr;
 		    	estr = "<a href=\"" + lstr + "\" target=\"_blank\"><font color=\"#0000AA\">" + estr + "</font></a>";
 				ostr += spacer + estr;
 			} else {
 				var estr = nstr;
 			}
 		}
 	}
 	ticker.setText(ostr);
 }
 
Das habe ich jetzt auch versucht einfach eine ticker.php auszulesen.
Eigentlich funktioniert es (auf den PC mit flash player oder browser) aber sobald ich den ticker hochlade hängt sich der ticker im browser auf.


verstehe aber nicht warum die Datei die er ausließt ist komplett die selbe nur das sie ticker.php heißt.
 
@ Borstenhorst:

Du musst lediglich die Zeilen:
PHP:
while (obj.nodeName != "channel") {
    obj = obj.childNodes[0];
}

so abändern:
PHP:
while (obj.nodeName != "rdf:RDF") {
    obj = obj.childNodes[0];
}
, da dieser Feed nicht komplett in ein "channel"-, sondern in ein "rdf:RDF"-Tag eingefasst ist (channel umfasst nur den Titel/ersten Link). Dieses Dokument entspricht im Aufbau dem Resource Description Framework - aber das ist nicht meine Welt. ;)

Gruß

P.S. @bluefighter002: Der Ticker hängt sich auf, wenn er keinen String (bzw. einen String der Länge 0) übergeben bekommt - das lässt sich zwar abfangen, z.B. durch diese Modifikation im MC "ticker":
PHP:
var ratio = (textwidth < 1)? 1: bg._width / (textwidth + gap) + 1;
, aber das Problem ansich wird dadurch nicht behoben, da bestenfalls nichts angezeigt wird. Wenn Du einen Link zu dem Feed posten könntest, ließe sich sicher herausfinden, woran das liegt.
.
 
Zuletzt bearbeitet:
Hi,

sorry, ich war gestern schon ein wenig müde und habe nicht weitergedacht: An der Datei liegts nicht, ich vermute vielmehr, dass sich Deine Seite und dieser Feed auf verschiedenen Domänen befinden.
Flashreferenz hat gesagt.:
[..] So kann beispielsweise eine SWF-Datei unter www.eineDomaene.com nur Variablen von SWF-Dateien laden, die sich ebenfalls unter www.eineDomaene.com befinden.
Wenn die "rss.php" nicht auf Deinem Webspace liegt, würde ich ein eigenes PHP-Script anlegen, dass die Ausgabe dieses Feeds einliest und einfach wieder ausgibt. Dein eigenes Script kannst Du dann mit Flash ausführen:
PHP:
$feed = implode($file("http://..../rss.php"));
echo($feed);

Gruß
.
 
Ich hab mir jetzt mal die Datei schicken lassen kein wunder das es nicht funktioniert.
Die ließt die den feed direkt vom Forum aus oder keinen plan wie das so funktioniert.

Ich glaub das es so sowieso nicht funktioniert oder könnte es da eine möglichkeit geben?

Die .swf hab ich sonst immer im gleichen ordner, wie die rss.ph oder .xml.

Ich hab die Datei mal angehängt

Thx blue
 

Anhänge

Zuletzt bearbeitet:
Zurück