Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 14-02-2006, 15:09   #1 (permalink)
Neuer User
 
Registriert seit: Jul 2003
Beiträge: 3
xml News-Liste in Flash verarbeiten und darstellen

Hallo Flashforum-Gemeinde.

Dies ist mein erstes Posting, ich hoffe ich bin hier richtig.
Es geht um das Thema XML und Flash. Natürlich habe ich in diesem Forum
etliche Beiträge und Tutorials durchgelesen und sie haben mir auch schon
sehr weitergeholfen, aber entweder bin ich zu doof, das auf meinen Fall anzuwenden, oder... naja, ich bin wahrscheinlich zu doof

Hier mein Problem:

Ich habe eine XML-Datei erstellt, die aus insgesamt drei Meldungen besteht.
Jeden Meldung wiederum besteht aus folgenden Elementen: Datum, Überschrift, Nachricht, Link und Bild.

Hier die XML-Datei:

Code:
<?xml version="1.0" encoding="iso-8859-1"?>
<meldungen>
	<meldung>
		<datum>01.02.2006</datum>
		<ueberschrift>Ueberschrift 1</ueberschrift>	
		<nachricht>Nachricht 1</nachricht>
		<link><a href="http://www.flashforum.de" target="_blank">Flashforum</a></link>
		<bild>bilder/bild_1.jpg</bild>
	</meldung>
	<meldung>
		<datum>20.02.2006</datum>
		<ueberschrift>Ueberschrift 2</ueberschrift>	
		<nachricht>Nachricht 2</nachricht>
		<link><a href="http://www.spiegel.de" target="_blank">Spiegel Online</a></link>
		<bild>bilder/bild_2.jpg</bild>
	</meldung>
	<meldung>
		<datum>25.02.2006</datum>
		<ueberschrift>Ueberschrift 3</ueberschrift>	
		<nachricht>Nachricht 3</nachricht>
		<link><a href="http://www.playboy.de" target="_blank">Playboy</a></link>
		<bild>bilder/bild_3.jpg</bild>
	</meldung>
</meldungen>


Diese Liste möchte ich in Flash einlesen und darstellen.
In Flash selbst habe ich dafür einen MC mit dem Instanzname "AlleMeldungen" angelegt und auf der Bühne platziert. In diesem MC befinden sich 3 weitere MC`s mit den Namen: "Meldung1", "Meldung2" und "Meldung3".
In jedem dieser Meldung-MC`s befinden sich jetzt Textfelder, die den Elementen in der XML-Datei entsprechen, also eins für "Datum", eins für "Ueberschrift" und so weiter. Darüber hinaus befindet sich in jedem der Meldung-Mc`s noch ein leerer MC für das Bild.

Im folgenden seht Ihr das Actionscript, das ich bis jetzt zusammengebaut habe:

PHP-Code:
meinxml = new XML();
meinxml.ignoreWhite true;
meinxml.load("meldungen_org.xml");
meinxml.onLoad = function(geladen) {
    if (
geladen) {
        var 
meldung1 meinxml.firstChild.firstChild;
        var 
inhaltMeldung1 meldung1.childNodes;
        for (var 
0i<inhaltMeldung1.lengthi++) {
            
eintrag inhaltMeldung1[i];
            
trace(eintrag.childNodes);
        }

    }
}; 


Im Ausgabefenster bekomme ich folgende Daten:

Code:
01.02.2006
Ueberschrift 1
Nachricht 1
<a href="http://www.flashforum.de" target="_blank">Flashforum</a>
bilder/bild_1.jpg

Dies entspricht dem Inhalt von Knoten "Meldung1" und genau das wollte ich ja auch haben, deswegen habe ich mich ja auch schon gefreut. Aber das war etwas zu früh, wie ich feststellen musste.


Meine Frage bzw meine Fragen:

Wie kann ich den kompletten Inhalt der XML-Datei auslesen? Muss ich am Anfang eine For-Schleife setzen, die mir die Elemente ermittelt und dann eine weitere, die mir dann den Inhalt der Elemente ausgibt, oder wie? (kratz)

wie bekomme ich die Daten in die einzelnen Textfelder und das Bild in das leere MC? Ich habe schon mehrere Versionen des folgenden Ausdrucks versucht, allerdings ohne Erfolg:

Code:
AlleMeldungen.Meldung1.MeldungDatum.text = meldung1.childNodes[0];

Könnt Ihr mir auf die Sprünge helfen?


Schonmal vielen Dank für Eure Hilfe.


PS: Macht es Sinn, die Dateien, die erstellt habe hochzuladen?
huber ist offline   Mit Zitat antworten
Alt 14-02-2006, 15:20   #2 (permalink)
°.oO°O.o°.oO.o°O
 
Benutzerbild von bamboocha
 
Registriert seit: Jun 2005
Ort: CH
Beiträge: 1.490
Hallo und herzlich Willkommen im FF!

PHP-Code:
AlleMeldungen.Meldung1.MeldungDatum.text meldung1.childNodes[0].firstChild
...ein fehlendes "firstChild"!
__________________
There is no way to happiness, happiness is the way! - Buddha
bamboocha ist offline   Mit Zitat antworten
Alt 14-02-2006, 16:41   #3 (permalink)
Neuer User
 
Registriert seit: Jul 2003
Beiträge: 3
bamboocha, Danke für Deine schnelle Antwort

leider funktioniert es nicht. Im Textfeld steht noch wie vor "undefined".
Dabei habe ich mich schon gefreut.
Kannst Du mir sagen wie ich den Rest der XML-Datei auslesen kann?
Ich glaube nämlich hier ist mein Fehler.


Danke
huber
huber ist offline   Mit Zitat antworten
Alt 14-02-2006, 17:01   #4 (permalink)
°.oO°O.o°.oO.o°O
 
Benutzerbild von bamboocha
 
Registriert seit: Jun 2005
Ort: CH
Beiträge: 1.490
Um an alle Daten zu kommen, musst du jeweils per Schleife den jeweiligen ChildNode durchgehen!
__________________
There is no way to happiness, happiness is the way! - Buddha
bamboocha ist offline   Mit Zitat antworten
Alt 14-02-2006, 19:58   #5 (permalink)
_//\\#//\\_
 
Benutzerbild von warrantmaster
 
Registriert seit: Jan 2003
Beiträge: 7.060
PHP-Code:
meinxml = new XML ();
meinxml.ignoreWhite true;
meinxml.onLoad = function (geladen)
{
    if (
geladen)
    {
        var 
fc=this.firstChild
        
var cn=fc.childNodes
        
var l=cn.length
        
for(var i=0;i<l;i++)
        {
            
weiter(cn[i].childNodes)
        }
    }
};
function 
weiter(arr)
{
    var 
l=arr.length
    
for(var i=0;i<l;i++)
    {
        
trace(arr[i].nodeName+'   : '+arr[i].firstChild)
    }
    
trace('#################################')
}




meinxml.load ("meldungen_org.xml"); 
warrantmaster ist offline   Mit Zitat antworten
Alt 14-02-2006, 21:23   #6 (permalink)
Neuer User
 
Registriert seit: Jul 2003
Beiträge: 3
wow!!

Hi warrantmaster!

Danke für Deine Hilfe. Das Script funktioniert prima.
Hab auch ne Lösung gefunden, allerdings etwas umständlicher:

PHP-Code:
mein_xml = new XML();
mein_xml.ignoreWhite true;
mein_xml.load("meldungen_org.xml");
mein_xml.onLoad = function(geladen) {
    if (
geladen) {
        var 
meldung1 mein_xml.firstChild.firstChild;
        var 
inhaltMeldung1 meldung1.childNodes;
        for (var 
0i<inhaltMeldung1.lengthi++) {
            
eintrag inhaltMeldung1[i];
            
trace(eintrag.childNodes);
        }
        
trace('----------------------------------------------');
        var 
meldung2 meldung1.nextSibling;
        var 
inhaltMeldung1 meldung2.childNodes;
        for (var 
0i<inhaltMeldung1.lengthi++) {
            
eintrag inhaltMeldung1[i];
            
trace(eintrag.childNodes);
        }
        
trace('----------------------------------------------');
        var 
meldung3 meldung2.nextSibling;
        var 
inhaltMeldung1 meldung3.childNodes;
        for (var 
0i<inhaltMeldung1.lengthi++) {
            
eintrag inhaltMeldung1[i];
            
trace(eintrag.childNodes);
        }
    }
}; 


Zwei Kleinigkeiten hätte ich noch:
Könntest Du Dein Skript bitte kommentieren? Ehrlich gesagt gibt es darin Passagen, die ich nicht raff. Wieso brauchst Du nur zwei Schleifen?
Und wie bekomme ich die Daten in die jeweiligen Textfelder?
bamboocha meinte ich hätte ein "firstChild" vergessen, aber mit "firstChild"
klappt es auch nicht. Ich bekomme immer "undefined". Was mache ich falsch?

Danke nochmal für Eure schnelle Hilfe.


Viele Grüsse
huber
huber ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 14:01 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele