Mehrere XMLFILES laden

Gerri84

Mitglied
Hallo alle zusammen !!

Bin neu hier und habe gleich mal eine frage....

ICh habe mir eine dynamische bildergalerie zusammen gezimmert die ich über ein xml file füttere

so nun möchte ich aber zulünftig diese galerie nicht nur mit einem xml file sondern mit beliebig vielen xmlfiles füttern. Diese files sollten alle unterschiedliche namen haben dürfen
das ganze sieht bei mir bis jetzt so aus klappt nur eben nicht ;)

HTML FILE

HTML:
	<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="980" height="140" id="ueberblaendung_xml" align="middle">
	<param name="allowScriptAccess" value="sameDomain" />
	<param name="allowFullScreen" value="false" />
	<param name="movie" value="ueberblaendung_xml.swf?xmlFile=test.xml" /><param name="quality" value="high" />
	<param name="bgcolor" value="#ffffff" />
	<embed src="ueberblaendung_xml.swf?xmlFile=test.xml" quality="high" bgcolor="#ffffff" width="980" height="140" name="ueberblaendung_xml" align="middle" allowScriptAccess="sameDomain" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
	</object>


as teil

PHP:
xmli.load = _root.xmlFile;
xmli.ignoreWhite = true;
xmli.onLoad = function(status) {
    if (status && this.loaded) {
        anz = xmli.firstChild.childNodes.length;
        v = Number(xmli.firstChild.attributes.speed); 
        p = Number(xmli.firstChild.attributes.pause); 
        nextPic();
    }
};  

var tl = this;
var i = -1;
// 
var bildpause = 1;
//
tl.createEmptyMovieClip("watcher", 0);
tl.createEmptyMovieClip("loader1", 1);
tl.createEmptyMovieClip("loader2", 2);



function nextPic() {
	i = i<anz-1? ++i : 0;
	clearInterval(tl.iv);
	if (mc != tl.loader1) {
		mc = tl.loader1;
	} else {
		mc = tl.loader2;
	}
	if(_root.fade) mc._alpha = 0; 
//
    mc.swapDepths(2); 
    mc.loadMovie(xmli.firstChild.childNodes[i].attributes.pic); 
    tl.watcher.onEnterFrame = function() { 
        if (mc.getBytesLoaded()>=mc.getBytesTotal() && mc.getBytesLoaded()>4) { 
//
_root.fade = true
//
            if (mc._alpha<100) {
				mc._alpha += v;
			} 
				else {
				delete this.onEnterFrame;
				tl.iv = setInterval(nextPic, bildpause*p);
			}
		}
	};
}


wenn mir jemand weiterhelfen könnte wär ich wirklich sehr froh


danke schon mal...
 
Hi,

übergib den Dateinamen als FlashVars-Parameter.

Im Object-Tag:
Code:
<param name="FlashVars" value="xmlFile=test.xml" />
Im Embed-Tag:
Code:
flashvars="xmlFile=test.xml"

Gruß
.
 
hmmm danke schon mal aber könntest vielleicht den ganzen object teil posten weil nämlich ich das nicht so wirklich hinbekomme ;)

thx
 
hmm ...

Code:
	<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="980" height="140" id="ueberblaendung_xml" align="middle">
	<param name="allowScriptAccess" value="sameDomain" />
	<param name="allowFullScreen" value="false" />
	<param name="movie" value="ueberblaendung_xml.swf" /><param name="quality" value="high" />
	<param name="bgcolor" value="#ffffff" />
	<param name="FlashVars" value="xmlFile=test.xml" />
	<embed src="ueberblaendung_xml.swf" flashvars="xmlFile=test.xml" quality="high" bgcolor="#ffffff" width="980" height="140" name="ueberblaendung_xml" align="middle" allowScriptAccess="sameDomain" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
	</object>

Gruß
.
 
sorry für das generve aber mit xml bin ich noch so richtig gar nicht auf du und du !

und an meinem as teil muss ich nichts ändern !?
 
Ach ja - das hätte ich fast übersehen:
Code:
xmli.load = _root.xmlFile;
Diese Zeile ist Unsinn (XML.load ist eine Methode, die Du mit einem Dateinpfad aufrufen musst, keine Eigenschaft, der Du einen Wert zuweist). Machs so:
Code:
xmli.load(xmlFile);

Zudem hast Du vergessen, das XML-Objekt überhaupt zu instanzieren und die Reihenfolge der Aktionen (load-Methode zum Schluss) stimmt auch nicht. Der Beginn Deines Scripts sollte also so aussehen:
Code:
var xmli = new XML();

xmli.ignoreWhite = true;

xmli.onLoad = function(status) {
    if (status && this.loaded) {
        anz = this.firstChild.childNodes.length;
        v = Number(this.firstChild.attributes.speed); 
        p = Number(this.firstChild.attributes.pause); 
        nextPic();
    }
}

xmli.load(xmlFile);

Gruß

P.S.: Bitte beachte unsere Netiquette in Bezug auf Groß- und Kleinschreibung - danke!
.
 
Super jetzt sieht das so aus wie ich mir das vorstelle !

Herzlichen Danke dafür... eine FRage noch ist das die eleganteste lösung soetwas umzusetzen... ich meien jetzt einmal abgesehen davon gleich mit php variablen zu arbeiten !?
 
Hi,

FlashVars ist eine gängige Methode, einige simple Parameter an Deinen Film zu übergeben (Du kannst die Werte ja auch durch ein PHP-Script in die Object- und Embed-Tags schreiben lassen).

Eine Alternative wäre z.B. eine Settings-Datei, die alle verwendeten Parameter enthält und vor allen anderen Aktionen geladen wird - das macht vor allem dann Sinn, wenn viele bzw. komplexere Parameter übergeben werden sollen.

Gruß
.
 
hallo

tja lohnt sich denn das bei so einer geringen anzahl von parametern !? und wenn ja wie sieht so ein file dann aus !?
 
Hi,

kommt darauf an und ist in diesem Fall wahrscheinlich Geschmackssache. Ein Vorteil kann sein, dass die entsprechenden Parameter auf diese Weise nicht direkt im Quelltext der html-Seite zu sehen sind (wenn man auf so was Wert legt).

Wie die Datei aussieht, bleibt Dir überlassen. Eine Möglichkeit wären URL-kodierte Parameterstring, die mit dem LoadVars-Objekt eingelesen werden können:
Code:
&autoplay=true&
&src=pfad/zur/datei.xml&
&maxwidth=640&
Eine andere Möglichkeit wäre eine XML-Datei:
XML:
<param name="autoplay" value="true" />
<param name="src" value="pfad/zur/datei" />
<param name="maxwidth" value="640" />
Vorteil hier: Du kannst auch html-Codierte Zeichenketten im Klartext übergeben, wenn Du CDADA-Bereiche verwendest:
XML:
<param type="text"><![CDATA[<b>Foo</b> <u>Bar</u>]]></param>

Gruß
.
 
Zuletzt bearbeitet von einem Moderator:

Neue Beiträge

Zurück