ERLEDIGT
JA
JA
ANTWORTEN
8
8
ZUGRIFFE
523
523
EMPFEHLEN
-
Hallo zusammen, ich versuche seit einiger Zeit vergeblich ein Array das ich mit dem Inhalt aus einer XML Datei gefüllt habe weiter zu verarbeiten (für eine Slideshow).
Ich bekomme aber immer nur undefined angezeigt wenn ich auf den Wert des Array ausserhalb der onLoad funktion zugreifen möchte. Ich würde es aber gerne ausserhalb dieser Funktion weiterverarbeiten können.
Bsp.:
myxml = new XML();
myxml.ignoreWhite = true;
myxml.onLoad = function(success) {
if(success) {
for (var i=0; i<myxml.firstChild.childNodes.length; i++) { images[i] = this.firstChild.childNodes[i].firstChild.firstChild;
}
} else {trace("Fehler beim Laden der XML datei")} }
myxml.load("bilder.xml");
//Hier sollte dann die Weiterverarbeitung beginnen:
// Beispielsweise trace(images[i]);
für Tipps oder Anregungen wäre ich sehr dankbar !!
-
Hi und willkommen im Forum,
die Weiterverarbeitung muss aus der onLoad-Funktion angestoßen werden.
Grund: ActionScript-Code wird Zeile für Zeile abgearbeitet, wobei nicht auf das Laden irgendwelcher Daten gewartet wird. An der Stelle, wo Du die Weiterverarbeitung vornehmen willst (auf der Zeitleiste unterhalb der onLoad-Methode), ist die Datei höchstwahrscheinlich noch nicht geladen.
So müsste es korrekt aussehen:Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
myxml = new XML(); myxml.ignoreWhite = true; myxml.onLoad = function(success) { if(success) { for (var i=0; i<myxml.firstChild.childNodes.length; i++) { images[i] = this.firstChild.childNodes[i].firstChild.firstChild; } [B]weiterverarbeiten[/B](); } else { trace("Fehler beim Laden der XML datei") } } myxml.load("bilder.xml"); function [B]weiterverarbeiten[/B]() { for (var i in images) { trace(images[i]); }
Gruß
.
-
Super !! genau das wars, Danke endlich kann ich es weiterverarbeiten
-
jetzt habe ich leider ein weiterführendes Problem mit loadClip, und zwar wenn ich ich direkt mit var images = new Array("bild1","bild2" ...usw. arbeite funktioniert die loadClip Funktion einwandfrei, aber wenn ich wie zuvor schon angefragt das Array aus einer XML Datei erstelle und damit weiterarbeiten möchte klappt das nicht. Wieso
Bsp::
//var images = new Array("bild1.jpg", "bild2.jpg", "bild3.jpg", "bild4.jpg", "bild5.jpg")
var images:Array = new Array();
var img:Array = new Array();
var mcl = new MovieClipLoader(); // MovieClipLoader um die Bilder zu laden
myxml = new XML();
myxml.ignoreWhite = true;
myxml.onLoad = function(success) {
if(success) {
for (var i=0; i<myxml.firstChild.childNodes.length; i++) {
images[i] = this.firstChild.childNodes[i].firstChild.firstChild;
}
weiterverarbeiten();
} else {
trace("Fehler beim Laden der XML datei")
}
}
myxml.load("bilder.xml");
function weiterverarbeiten() {
mcl.onLoadInit = function() { // wird aufgerufen, wenn ein Bild geladen wurde
trace("ok. hat geklappt");
}
trace(images.length);
for (var i=0; i<images.length; i++) {
img[i] = this.createEmptyMovieClip("img" + i, i); // Für jedes Bild einen MC erstellen
var ct = img[i].createEmptyMovieClip("ct", 1); // ... und dort einen weiteren leeren MC hineinpacken
//img[i]._visible = false; // Bild erstmal ausblenden
mcl.loadClip(images[i], ct); // Bilddatei vom MovieClipLoader in den Container laden lassen
}
}
könnte mir da noch jemand weiterhelfen
-
Hi,
bitte rücke Deinen Code ein und formatier ihn mit CODE-Tags. So kann man das ja kaum lesen.
Dein Problem habe ich nicht ganz verstanden - poste am besten mal Deine .fla und die XML-Datei als Anhang.
Gruß
.
-
Nun habe ich mal beide Dateien angehangen,
also wenn ich die obere (auskommentierte Zeile) direkt verwende var images = new Array("bild1.jpg"...) dann funktioniert alles einwandfrei (habe den unteren Slideshow Teil übrigens hier von diesem Forum),
aber wenn ich versuche den Inhalt für das Array images aus einer XML Datei auszulesen und zu füllen, klappt die weitere Verarbeitung nicht mehr.
in der Hoffnung auf eine Lösung
gruß
Doni2007
-
Ich habe hier nochmal das Script besser formatiert eingefügt,
also wenn ich das array mittels XML erzeuge funktioniert die Bildausgabe nicht !
aber wenn ich aber die obere Zeile entkommentiere und dafür die:
images[i] = this.firstChild.childNodes[i].firstChild.firstChild; auskommentiere funktioniert es, wieso ?
PHP-Code://var images = new Array("bild1.jpg", "bild2.jpg", "bild3.jpg", "bild4.jpg", "bild5.jpg", "bild6.jpg", "bild7.jpg", "bild8.jpg", "bild9.jpg", "bild10.jpg", "bild11.jpg", "bild12.jpg", "bild13.jpg", "bild14.jpg"); // Array mit den Bildpfaden
var images:Array = new Array();
var img:Array = new Array();
var mcl = new MovieClipLoader();
myxml = new XML();
myxml.ignoreWhite = true;
myxml.onLoad = function(success) {
if(success) {
for (var i=0; i<myxml.firstChild.childNodes.length; i++) {
images[i] = this.firstChild.childNodes[i].firstChild.firstChild;
}
weiterverarbeiten();
} else {
trace("Fehler beim Laden der XML datei")
}
}
myxml.load("bilder.xml");
function weiterverarbeiten() {
this.createEmptyMovieClip("bild_mc",this.getNextHighestDepth());
trace(images[0]); // trace gibt bild1.jpg aus
//mcl.loadClip(images[0], bild_mc); //funktioniert nicht
mcl.loadClip("bild1.jpg", bild_mc); //funktioniert
}
Inhalt der bilder.xml Datei:
<?xml version="1.0" ?>
<bilder>
<bild>
<bildname>bild1.jpg</bildname>
<bildbeschreibung>bla bla<bildbeschreibung>
</bild>
<bild>
<bildname>bild2.jpg</bildname>
<bildbeschreibung>bla bla</bildbeschreibung>
</bild>
usw.
.........
</bilder>
bin für jede Hilfe dankbar !
-
Hi,
ich hatte bislang leider noch keine Zeit, mir die Datei anzusehen, aber probier mal:oderCode :1
images[i] = this.firstChild.childNodes[i].firstChild.firstChild.[B]nodeValue[/B],
Code :1
images[i] = this.firstChild.childNodes[i].firstChild.firstChild.[B]toString()[/B];
Grund: das Objekt "firstChild" ist vom Typ XMLNode, der MovieClipLoader erwartet aber einen String.
Gruß
.
-
Eigene Dummheit, Problem hat sich erledigt, hab den dummen Fehler gefunden,
habe die XML Knoten falsch ausgelesen.
Lösung:
this.firstChild.childNodes[i].childNodes[0].firstChild.nodeValue;
Ähnliche Themen
-
byte Array in Datei speichern und wieder in byte Array einlesen
Von riseX im Forum JavaAntworten: 5Letzter Beitrag: 22.02.10, 12:05 -
Ausgelesenes Bild an Bühnengröße anpassen
Von Webflasher im Forum Flash PlattformAntworten: 11Letzter Beitrag: 25.11.09, 14:08 -
AS3: MovieClip im Array; referenzieren und weiterverarbeiten
Von hugo1981 im Forum Flash PlattformAntworten: 6Letzter Beitrag: 19.11.08, 13:50 -
Daten aus csv Datei auslesen und weiterverarbeiten
Von teisho im Forum JavaAntworten: 7Letzter Beitrag: 14.09.07, 17:33 -
Ausgelesenes Datum ändern
Von starfoxfs im Forum PHPAntworten: 4Letzter Beitrag: 31.08.04, 13:55





Zitieren
Login





