Zurück   Flashforum > Flash und Server > Flash mit XML und Webservices

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 22-02-2009, 23:51   #1 (permalink)
Neuer User
 
Registriert seit: Dec 2007
Beiträge: 43
XML Kategorien Inhalt laden

Hallo zusammen,
ich hab ein kleines Problem mit den Laden von einer XML-Datei.
Meine XML ist so aufgebaut:

PHP-Code:
<Kategorie id="1" kname="Landschaften" tmb="Kategorien/land.jpg">
    <
eintrag Text="Test" pic="Bilder/Landschaften/photo1.jpg"/>
    <
eintrag Text="Test" pic="Bilder/Landschaften/photo2.jpg"/>
    <
eintrag Text="Test" pic="Bilder/Landschaften/photo3.jpg"/>
    <
eintrag Text="Test" pic="Bilder/Landschaften/photo4.jpg"/>
</
Kategorie>

<
Kategorie id="2" kname="Lightwriting" tmb="Kategorien/light.jpg">
    <
eintrag Text="TestTest" pic="Bilder/Lightwriting/Photo1.jpg"/>
</
Kategorie>

<
Kategorie id="3" kname="Lightwriting" tmb="Kategorien/light.jpg">
    <
eintrag Text="TestTest" pic="Bilder/Lightwriting/Photo1.jpg"/>
</
Kategorie>

<
Kategorie id="4" kname="Lightwriting" tmb="Kategorien/light.jpg">
    <
eintrag Text="TestTest" pic="Bilder/Lightwriting/Photo1.jpg"/>
</
Kategorie
Ich gebe in Flash alle Kategorien aus. Ich möchte nun, wenn man auf einen Button(Kategorie) klickt, dass die Einträge der jeweiligen Kategorie geladen werden. Ist das möglich?

Mein AS sieht so aus:

Auf Frame 1:

PHP-Code:
stop();
var 
XMLdaten = new XML();
XMLdaten.ignoreWhite=true;
XMLdaten.load("ausgabe.xml");
XMLdaten.onLoad = function(success) {
    
anzahl XMLdaten.firstChild.childNodes.length//liest die anzahl der elemente aus!
    
kname = []; //neues array
    
tmb = [];
    for (var 
i=0i<anzahli++) {
            
kname[i] = XMLdaten.firstChild.childNodes[i].attributes.kname;
            
tmb[i] = XMLdaten.firstChild.childNodes[i].attributes.tmb;                
    }
    
gotoAndStop(2);

Auf Frame 2:

PHP-Code:
stop();
import mx.transitions.*;
photo._x 0+(photo._width/2);
photo._y 10;
photo._visible false;
//photo.kategorie._visible = false;
photo.kategorie._y = -photo.kategorie._height*2;

var 
intervalID:Number;
var 
i:Number 0;
var 
maxCount:Number anzahl-1;

function 
initTween() {
    
obj photo.duplicateMovieClip("thumb_"+ii);
    
obj._x += i*(obj._width+50);
    
obj.kategorie.kategorie kname[i];
    
obj.holder.loadMovie(tmb[i]);
    
obj.onRelease = function() {
        for (
i=0i<anzahli++) {
            
_root["thumb_"+i].removeMovieClip();
        }

    };
    
obj.onRollOver = function() {
        var 
kattween:Tween = new Tween(this.kategorie"_y"mx.transitions.easing.Strong.easeOut, -photo.kategorie._height*20+(photo.kategorie._height/2), 20false);
    };
    
obj.onRollOut = function() {
        var 
kattween:Tween = new Tween(this.kategorie"_y"mx.transitions.easing.Strong.easeOut0+(photo.kategorie._height/2), -photo.kategorie._height*220false);
    };
    var 
phototween:Tween = new Tween(obj"_yscale"mx.transitions.easing.Strong.easeOut010020false);
    var 
phototween:Tween = new Tween(obj"_xscale"mx.transitions.easing.Strong.easeOut010020false);
    if (
i>=maxCount) {
        
clearInterval(intervalID);
    }
    
i++;


}
intervalID setInterval(this"initTween"200); 
Ich freu mich auf jede Hilfe.

lg

Geändert von spulN (23-02-2009 um 00:38 Uhr)
spulN ist offline   Mit Zitat antworten
Alt 23-02-2009, 00:20   #2 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.326
dein XML ist nicht 'wohlgeformt'

pack das ganze zeugs in einen tag und ergänze auch die headline.
http://de.wikipedia.org/wiki/Extensible_Markup_Language
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 23-02-2009, 00:29   #3 (permalink)
Neuer User
 
Registriert seit: Dec 2007
Beiträge: 43
Die Headline ist dabei. Hab sie bloß nicht mitkopiert.
Also so sieht das ganze XML aus:
PHP-Code:
<?xml version='1.0' encoding='utf-8'?>
<Projekte>
    <Kategorie id="1" kname="Landschaften" tmb="Kategorien/land.jpg">
        <eintrag Text="Test" pic="Bilder/Landschaften/photo1.jpg"/>
        <eintrag Text="Test" pic="Bilder/Landschaften/photo2.jpg"/>
        <eintrag Text="Test" pic="Bilder/Landschaften/photo3.jpg"/>
        <eintrag Text="Test" pic="Bilder/Landschaften/photo4.jpg"/>
    </Kategorie>
    
    <Kategorie id="2" kname="Lightwriting" tmb="Kategorien/light.jpg">
        <eintrag Text="TestTest" pic="Bilder/Lightwriting/Photo1.jpg"/>
    </Kategorie>
    
    <Kategorie id="3" kname="Lightwriting" tmb="Kategorien/light.jpg">
        <eintrag Text="TestTest" pic="Bilder/Lightwriting/Photo1.jpg"/>
    </Kategorie>
    
    <Kategorie id="4" kname="Lightwriting" tmb="Kategorien/light.jpg">
        <eintrag Text="TestTest" pic="Bilder/Lightwriting/Photo1.jpg"/>
    </Kategorie>
</Projekte>
Ich fülle meine XML datei mit daten aus einer Datenbank.
Wie sollte ich es schreiben, damit ich es in Kategorien unterteilen kann?

Geändert von spulN (23-02-2009 um 00:34 Uhr)
spulN ist offline   Mit Zitat antworten
Alt 23-02-2009, 05:13   #4 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.326
Zitat:
Zitat von spulN Beitrag anzeigen
Wie sollte ich es schreiben, damit ich es in Kategorien unterteilen kann?
?? das machst du doch mit id=xxx
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 23-02-2009, 10:13   #5 (permalink)
Neuer User
 
Registriert seit: Dec 2007
Beiträge: 43
Ja schon. Ich weiss bloß nicht wie ich es mache, dass wenn ich auf einen Button klicke, er mir die dazugehörigen Einträge ausgibt.
spulN ist offline   Mit Zitat antworten
Alt 23-02-2009, 15:27   #6 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.326
dachte, du hättest ladeprobleme?

dann
z.b.
http://www.seibsprogrammladen.de/fra...lgorithmen/XML
XML parsen
oder z.b.
XML zu Array
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (23-02-2009 um 15:28 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 28-02-2009, 02:06   #7 (permalink)
Neuer User
 
Registriert seit: Dec 2007
Beiträge: 43
Also irgendwie komm ich mit dem Link nicht ganz zurecht.
Wenn ich jetzt den Code habe:

PHP-Code:
function fXML_parsen(_xml) {
    do {
        if (
_xml.nodeName) {// nodeName ausgeben 
            
trace("");
            
trace(_xml.nodeName+"::");
            
            
// alle attributes zu diesem Nodes ausgeben: 
            
for (var i in _xml.attributes) {
                
trace(i+": "+_xml.attributes[i]);
            }
            
// nodeValue des Nodes ausgeben: 
            
if (_xml.firstChild.nodeValue) {
                
trace(_xml.firstChild.nodeValue);
            }
        }
        if (
_xml.hasChildNodes()) {
            
fXML_parsen(_xml.firstChild);
        }
    } while (
_xml=_xml.nextSibling);
}
//
_xml = new XML();
_xml.ignoreWhite true;
_xml.load("test.xml");// bzw. einen Pfad-Namen eines XML-Files angeben 
_xml.onLoad = function(ok) {
    if (
ok) {
        
fXML_parsen(this.firstChild);
    } else {
        
trace("Einlesefehler: "+this);
    }
}; 
Dann traced er mir es ja perfekt. Aber wie kann ich jetzt z.B. die Namen der Kategorien in Textfelder schreiben?!
spulN ist offline   Mit Zitat antworten
Alt 28-02-2009, 02:43   #8 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.326
Zitat:
Zitat von spulN Beitrag anzeigen
Aber wie kann ich jetzt z.B. die Namen der Kategorien in Textfelder schreiben?!
???
anstatt
trace(_xml.firstChild.nodeValue);
zb.
instanzname_des_textfeldes.text = _xml.firstChild.nodeValue;
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 28-02-2009, 16:21   #9 (permalink)
Neuer User
 
Registriert seit: Dec 2007
Beiträge: 43
Ja des is ja des komische. Ich hab das so schon probiert, aber es passiert nix ?!
spulN ist offline   Mit Zitat antworten
Alt 28-02-2009, 16:59   #10 (permalink)
brand new user
 
Benutzerbild von RustyCake
 
Registriert seit: May 2002
Ort: Laimbach 6 1/2
Beiträge: 16.884
Bei "nodeValue" kommt nichts an, da haste wohl recht!!
Ich weis ja nicht was Du brauchst, aber die "kname" kannst auch so raussaugen!!
ActionScript:
  1. function fXML_parsen(_xml) {
  2.     do {
  3.         if (_xml.nodeName) {// nodeName ausgeben
  4.             trace("");
  5.            trace(_xml.nodeName+"::");
  6.            
  7.             // alle attributes zu diesem Nodes ausgeben:
  8.             for (var i in _xml.attributes) {
  9.                trace(i+": "+_xml.attributes[i]);
  10.                 if (i == "kname") {
  11.                 trace("ins Textfeld kommt -->"+_xml.attributes[i]);
  12.             }
  13.             }
  14.             // nodeValue des Nodes ausgeben:
  15.             if (_xml.firstChild.nodeValue) {
  16.                 trace("nodeValue::"+_xml.firstChild.nodeValue);
  17.             }
  18.         }
  19.         if (_xml.hasChildNodes()) {
  20.             fXML_parsen(_xml.firstChild);
  21.         }
  22.     } while (_xml=_xml.nextSibling);
  23. }
  24. //
  25. _xml = new XML();
  26. _xml.ignoreWhite = true;
  27. _xml.load("test.xml");// bzw. einen Pfad-Namen eines XML-Files angeben
  28. _xml.onLoad = function(ok) {
  29.     if (ok) {
  30.         fXML_parsen(this.firstChild);
  31.     } else {
  32.        trace("Einlesefehler: "+this);
  33.     }
  34. };
Ich hoffe der Hr. Seib vergibt mir, das ich in seinem script rumgestümpert hab!
__________________
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muß erst gehen lernen"
RustyCake ist offline   Mit Zitat antworten
Alt 28-02-2009, 17:37   #11 (permalink)
Neuer User
 
Registriert seit: Dec 2007
Beiträge: 43
Danke, dass funktioniert schon mal besser.
Er gibt mir jetzt aber nur die letzte Kategorie aus.

Ich wollte es so machen:
-Es sollen alle Kategorien ausgegeben werden
-Wenn man auf eine Kategorie klickt, dann sollen die jeweiligen Einträge der Kategorie ausgegeben werden.
spulN ist offline   Mit Zitat antworten
Alt 28-02-2009, 17:49   #12 (permalink)
brand new user
 
Benutzerbild von RustyCake
 
Registriert seit: May 2002
Ort: Laimbach 6 1/2
Beiträge: 16.884
Pump des zeug in Array's wie im ersten Post, da dürfte des dann einfacher sein!
__________________
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muß erst gehen lernen"
RustyCake ist offline   Mit Zitat antworten
Alt 28-02-2009, 17:57   #13 (permalink)
Neuer User
 
Registriert seit: Dec 2007
Beiträge: 43
ok du meinst ich soll es so machen wie ich es lösen wollte?
Soweit war ich ja schon^^. Bei mir hagts bloß bei der übergabe. Also wenn ich auf den Button klick, dass er mir alle Einträge ausgibt.
spulN ist offline   Mit Zitat antworten
Alt 28-02-2009, 19:10   #14 (permalink)
brand new user
 
Benutzerbild von RustyCake
 
Registriert seit: May 2002
Ort: Laimbach 6 1/2
Beiträge: 16.884
Hab bis jetzt noch kein script von Dir gesehn, was mit Button-Ausgabe zu tun hat!
__________________
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muß erst gehen lernen"
RustyCake ist offline   Mit Zitat antworten
Alt 28-02-2009, 19:39   #15 (permalink)
Neuer User
 
Registriert seit: Dec 2007
Beiträge: 43
Ja nur der Teil hier:

Zitat:
Zitat von spulN Beitrag anzeigen
var intervalID:Number;
var i:Number = 0;
var maxCount:Number = anzahl-1;

function initTween() {
obj = photo.duplicateMovieClip("thumb_"+i, i);
obj._x += i*(obj._width+50);
obj.kategorie.kategorie = kname[i];
obj.holder.loadMovie(tmb[i]);
obj.onRelease = function() {
for (i=0; i<anzahl; i++) {
_root["thumb_"+i].removeMovieClip();
}

};
Ich weiss bloß leider nicht wie ich weiter machen soll.
spulN ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
einträge, kategorien, laden, xml

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 04:15 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele