xml funktioniert nicht bei einbettetem swf

oaki

Erfahrenes Mitglied
Ich habe einen hauptfilm (main.swf) in dem alle weitere inhalte angezeigt werden. Diese befinden sich jeweils in einem sepertatem .swf file. Den Text lade ich von einer xml datei in diese files. Dies funktioniert perfekt solange ich die inhaltsdateien selbst öffne. wenn ich nun aber die main.swf laufen lasse und zum Beispiel den inhalt "kontakt" hole, wird überhaupt nichts angezeigt..
Hat jemand eine Ahnung an was das liegen könnte? Kann ich xml nur in einem File gebrauchen das dirket angezeigt und nicht inclueded wird?

Vielen Dank!
 
PHP:
doc = new XML();
doc.ignoreWhite = true;
doc.load("lan_eng.xml");
function myOnLoad() {
	_root.content_title.text = doc.firstChild.childNodes[0].firstChild.nodeValue;
	_root.content_text.text = doc.firstChild.childNodes[1].firstChild.nodeValue;

}
doc.onLoad = myOnLoad;

stop();
 
_root.content_title.text verweist auf die Hauptzeitleiste des Mainmovies
ergo auf deine swf in die deine externe geladen wird..
entweder schreibst du in die externe wenn es ab Flash 7 ist ins erste Schlüsselbild
this._lockroot = true;
oder wenn es eine vorherige Version ist dann _parent...pfad zum Textfeld
 
ich habs jetzt mit parent versucht, weils es eigentlich ab Flash 6 funktionieren soll, aber nun wird der text überhaupt nicht mehr angezeigt.. nicht mal mehr in der home.swf (die datei die in die main.swf geladen werden soll..)
 
teste mal
PHP:
this._parent.content_title.text = this.doc.firstChild.childNodes[0].firstChild.nodeValue;
oder nur
poste mal das Script wie du es in die Haupt lädst oder besser noch
pack mal alles in eine zip und poste sie (incl.. xml)
 
Zuletzt bearbeitet:
geht leider nicht.. ich hab mal alles in ein zip gepackt, vielenn Dank!!
 

Anhänge

  • Neuer Ordner.zip
    129,1 KB · Aufrufe: 13
Hallo,

du machst einen ganz klitzekleinen aber essentiellen Fehler. Wenn du in einer onLoad-Funktion mit this pfadest, referenzierst du den Event-Listener, in deinem Fall das XML-Objekt. Zwei Möglichkeiten:

1. Du speicherst den Ziel-MovieClip mit den Textfeldern in einer Variable, damit du sozusagen trotzdem pfaden kannst und den Überblick behältst.

PHP:
doc = new XML();
doc.ignoreWhite = true;

var pfad = this;

function myOnLoad() {
	pfad.content_title.text = doc.firstChild.childNodes[0].firstChild.nodeValue;  
	pfad.content_text.text = doc.firstChild.childNodes[1].firstChild.nodeValue;  

}

doc.onLoad = myOnLoad;
doc.load("lan_eng.xml");


2. Du sprichst die Textfelder nicht direkt an, sondern bloss über deren (in diesem Falle zwangsläufig einzigartigen) Instanznamen an

PHP:
doc = new XML();
doc.ignoreWhite = true;

function myOnLoad() {
	content_title.text = doc.firstChild.childNodes[0].firstChild.nodeValue;  
	content_text.text = doc.firstChild.childNodes[1].firstChild.nodeValue;  

}

doc.onLoad = myOnLoad;
doc.load("lan_eng.xml");

Tip: Gib in der onLoad-Funktion mal this aus, also trace (this), dann siehst du, was ich meine.

Gruss
 
Zurück