+ Antworten
Ergebnis 1 bis 7 von 7

Thema: Flash und XML => Menü

  1. #1
    TP-Junior Nova969 macht alles soweit korrekt
    Registriert seit
    Jan 2004
    Ort
    Höxter
    Beiträge
    17

    Flash und XML => Menü

    Hallo, ich habe da ein Problem, ich würde gerne eine XML Datei auslesen um ein Dynamisches Menü zu erstellen.
    Ich habe zwar ein wenig Ahnung von AS aber bin nicht ganz so bewandert...
    Könntet ihr mir da vielleicht helfen (tutorials der so)?

    Ich habe folgendes HTML Script (welches aber doch wie ein XML funktioniert, oder?), welches nicht abgeändert werden soll, da es von einem Programm erstellt wird welches dann immer die gleichen Tags verwendet.

    <html><head>Hier stand mal was was ich aber gelöscht habe</head>

    <body>
    <navigation>
    <item name="Hauptnavigation">
    <text>Hauptnavigation</text>
    ?idcat=1
    <items>
    <item name="Punkt 1">
    <text>Punkt 1</text>
    ?idcat=3
    <items>
    <item name="Punkt 1.1">
    <text>Punkt 1.1</text>
    ?idcat=6
    <items>
    </items>
    </item>
    <item name="Punkt 1.2">
    <text>Punkt 1.2</text>
    ?idcat=7
    <items>
    </items>
    </item>
    </items>
    </item>
    <item name="Punkt 2">
    <text>Punkt 2</text>
    ?idcat=8
    <items>
    <item name="Punkt 2.1">
    <text>Punkt 2.1</text>
    ?idcat=9
    <items>
    </items>
    </item>
    <item name="Punkt 2.2">
    <text>Punkt 2.2</text>
    ?idcat=10
    <items>
    </items>
    </item>
    </items>
    </item>
    </items>
    </item>
    <item name="News">
    <text>News</text>
    ?idcat=12
    <items>
    </items>
    </item>
    <item name="Hilfsnavigation">
    <text>Hilfsnavigation</text>
    ?idcat=2
    <items>
    <item name="Home">
    <text>Home</text>
    ?idcat=17
    <items>
    </items>
    </item>
    <item name="Impressum">
    <text>Impressum</text>
    ?idcat=4
    <items>
    </items>
    </item>
    <item name="Kontakt">
    <text>Kontakt</text>
    ?idcat=5
    <items>
    </items>
    </item>
    </items>
    </item>
    </navigation></body></html>

    ich habe zwar schon ein paar menüs getestet, aber die werfen mir wenn überhaupt zu viele Menüpunkte aus...

  2. #2
    TP-Veteran root_alpha hilft, wo's geht root_alpha hilft, wo's geht root_alpha hilft, wo's geht Avatar von root_alpha
    Registriert seit
    May 2003
    Ort
    münchen
    Beiträge
    1.745
    Hi@nova696,

    Mh, wie schaut den dein AS aus !?.

    Eine XML Datei sollte wenn dann auch als solsche Behandelt werden!. Das heißt auch so geschrieben werden, zB.

    PHP-Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <root>
    <entry label="Über uns">
            <sub label="Firma"/>
            <sub label="Menschen">
                <third label="Programmierer"/>
                <third label="Designer"/>
                <third label="Leitende Personen"/>
            </sub>
    </entry>
    </root>
    mfg. - - Mario - - Icq 124346551 : MyWebHome :

  3. #3
    TP-Junior Nova969 macht alles soweit korrekt
    Registriert seit
    Jan 2004
    Ort
    Höxter
    Beiträge
    17
    Danke für Deine Antwort, das hier ist das erste Forum, was mir auf diese Frage antwortet... traurig aber wahr...
    Tja, mein AS... Das sieht ganz schön übel aus, finde ich zumindest..

    PHP-Code:
    var root null;
    var 
    menux 10;
    var 
    menuy 10;
    var 
    menuname "Main Menue";

    var 
    xm = new XML();
    xm.ignoreWhite true;
    xm.load("cmsx.navigation1.php");

    xm.onLoad = function() {
        
    parse(this);
    }

    function 
    parse(obj) {
        
    root this.attachMovie("node""root"this.getNextHighestDepth());
        
    root.bname menuname;
        
    root.node obj;
        
    root.root this;
        
    root.depth 0;
        
    root._x menux;
        
    root._y menuy;
        
    this.onEnterFrame = function() {
            
    root.doParse();
            
    delete this.onEnterFrame;
        }
    }

    function 
    dispatch(bname) {
        
    trace(bname);

    Das steht in der ersten Frame in der Code Ebene

    Das steht im node mc
    PHP-Code:
    var type false;
    var 
    isopen false;
    var 
    child = new Array();
    var 
    but null;
    var 
    blocked false;
    var 
    IV 0;

    function 
    doParse(obj) {
        
    this._x this.bx;
        
    this.but this.attachMovie("button""but"1);
        if (
    this.depth 0) {
            
    this._visible true;
            
    this.bname this.node.attributes.name;
            
    this.but.btext.text this.bname;
        }
    // else {
            //this.bname = "MENÜ";
            
    this.but.btext.text this.bname;
        
    //}
        
    for (var i=0i<this.node.childNodes.lengthi++) {
            
    child[i] = this.root.attachMovie("node""child" ithis.root.getNextHighestDepth());
            
    child[i].node this.node.childNodes[i];
            
    child[i].parent this;
            
    child[i].root this.root;
            
    child[i].depth this.depth 1;
            if (
    this.depth 0) {
                
    child[i].bx this._x this._width 1;
                
    child[i]._y this._y + (this._height 1) * i;
            } else {
                
    child[i].bx this._x;
                
    child[i]._y this._y + (this._height 1) * (1);
            }
        }
        
    this.onEnterFrame = function() {
            for (var 
    i=0i<this.node.childNodes.lengthi++) {
                
    child[i].doParse();
            }
            
    delete this.onEnterFrame;
        }
    }

    function 
    klick() {
        
    hideAll();
        
    this.root.dispatch(this.bname);
    }

    function 
    hideAll() {
        
    unblock();
        
    hideMe();
        
    parent.hideAll();
    }


    function 
    over() {
        
    block();
        
    parent.block();
        
    parent.hideSubSubs(this);
        for (var 
    i=0i<this.child.lengthi++) {
            
    this.child[i]._visible true;
        }
    }

    function 
    block() {
        
    clearInterval(IV);
        
    this.blocked true;
        
    parent.block();
    }

    function 
    unblock() {
        
    clearInterval(IV);
        
    this.blocked false;
    }

    function 
    out() {
        
    clearInterval(IV);
        
    this.blocked false;
        
    parent.unblock();
        
    IV setInterval(function() { hideSiblings(); }, 200);
    }

    function 
    hideSiblings() {
        
    clearInterval(IV);
        
    hideSubs();
        for (var 
    i=0i<parent.child.lengthi++) {
            
    parent.child[i].hideMe();
        }
    }

    function 
    hideMe() {
        
    clearInterval(IV);
        if (!
    parent.blocked) {
            
    this.blocked false;
            
    hideSubs();
            if (
    this.depth 0) {
                
    this._visible false;
            }
        } else {
            
    hideSubs();
        }
    }

    function 
    hideSubs() {
        
    clearInterval(IV);
        for (var 
    i=0i<this.child.lengthi++) {
            
    this.child[i].hideMe();
        }
    }

    function 
    hideSubSubs(obj) {
        for (var 
    i=0i<this.child.lengthi++) {
            if (
    child[i] != obj) {
                
    child[i].blocked false;
                
    child[i].hideSubs();
            }
        }

    und das hier im button mc

    PHP-Code:
    this.useHandCursor false;

    this.onRollOver = function() {
        
    gotoAndStop(2);
        
    _parent.over();
    }

    this.onRollOut this.onReleaseOutside = function() {
        
    gotoAndStop(1);
        
    _parent.out();
    }

    this.onRelease = function() {
        
    _parent.klick();
    }
    stop();/*das stop(); stand da nich wirklich so, war in einer anderen Ebene aber im gleichen Frame*/ 
    ich könnte Dir auch die fla senden, vielleicht hilft Dir das ja mehr... und auch die PHP...
    (sorry hatte mich vertan, um das noch ein wenig genauer zu erläutern:
    Eine PHP Datei, mit ganz vielen Hyroglyphischen Zeichen generiert dann diese PHP Datei bzw. da steht, das die diese XML generiert.... welche dann im Explorer unter Quellcode ansehen wie die unten aufgeführte "XML" aussieht, hoffe das war nicht allzu verwirrend)

    Das ganze funktioniert auch reibungslos, wenn die Tags attribute.name haben anstatt der ganzen Tags.
    Der text tag sollte dann in den button als beschriftung, das ?idcat attribut als link bzw. URL und dieses blöde leere item tag an jedem Knotenende soll ignoriert werden.

    Oh, und wegen der "XML" die sieht auch so aus:
    PHP-Code:
    <?xml version="1.0"?>
    <!-- 
    Author und Copyright wurde von mir entfernt
    //-->
    <navigation>
        <item name="Hauptnavigation">
            <text>Hauptnavigation</text>
            <link>?idcat=1</link>
            <items>
                <item name="Punkt 1">
                    <text>Punkt 1</text>

                    <link>?idcat=3</link>
                    <items>
                        <item name="Punkt 1.1">
                            <text>Punkt 1.1</text>
                            <link>?idcat=6</link>
                            <items>
                            </items>

                        </item>
                        <item name="Punkt 1.2">
                            <text>Punkt 1.2</text>
                            <link>?idcat=7</link>
                            <items>
                            </items>
                        </item>
                    </items>

                </item>
                <item name="Punkt 2">
                    <text>Punkt 2</text>
                    <link>?idcat=8</link>
                    <items>
                        <item name="Punkt 2.1">
                            <text>Punkt 2.1</text>

                            <link>?idcat=9</link>
                            <items>
                            </items>
                        </item>
                        <item name="Punkt 2.2">
                            <text>Punkt 2.2</text>
                            <link>?idcat=10</link>

                            <items>
                            </items>
                        </item>
                    </items>
                </item>
            </items>
        </item>
        <item name="News">
            <text>News</text>

            <link>?idcat=12</link>
            <items>
            </items>
        </item>
        <item name="Hilfsnavigation">
            <text>Hilfsnavigation</text>
            <link>?idcat=2</link>

            <items>
                <item name="Home">
                    <text>Home</text>
                    <link>?idcat=17</link>
                    <items>
                    </items>
                </item>
                <item name="Impressum">

                    <text>Impressum</text>
                    <link>?idcat=4</link>
                    <items>
                    </items>
                </item>
                <item name="Kontakt">
                    <text>Kontakt</text>

                    <link>?idcat=5</link>
                    <items>
                    </items>
                </item>
            </items>
        </item>
    </navigation>
    Das ändert schon einiges, denke ich.
    Wie gesagt, das ist aber nur die Quelltext ansicht, nicht das direkte PHP Script!

    Ich poste nicht oft in Foren, deswegen wusste ich nicht, wie man den PHP Code einfügt...
    Geändert von Nova969 (18.05.2005 um 13:51 Uhr) Grund: Hab was vergessen, vielleicht is es ja wichtig!?

  4. #4
    TP-Veteran root_alpha hilft, wo's geht root_alpha hilft, wo's geht root_alpha hilft, wo's geht Avatar von root_alpha
    Registriert seit
    May 2003
    Ort
    münchen
    Beiträge
    1.745
    Hi@nova969,

    Das sieht alles recht zusammen geflickt aus!!!.

    Kannst du mal die Dateien zum Download bereitstellen!?, am besten auch noch kurz Erklären was du da eigentlich wirklich vor hast!?.
    mfg. - - Mario - - Icq 124346551 : MyWebHome :

  5. #5
    TP-Junior Nova969 macht alles soweit korrekt
    Registriert seit
    Jan 2004
    Ort
    Höxter
    Beiträge
    17
    Ok, ich habe da mal die Anhänge gepostet..
    Ich habe da nich wirklich zusammengeflickt, sondern nur meine XML Datei laden lassen, das Script is leider nicht von mir.

    Zu meinem Vorhaben:
    Ich brauche ein Menü welches völlig dynamisch ist und die "XML" so ausliest, wie sie ist bzw. wie sie sein könnte, wenn ich die Struktur erweitern würde, nach dem gleichen Schema.
    Allerdings brauche ich natürlich nicht die childNodes wie text, link oder das leere item Tag (besonders das nich)als Menüstruktur sondern nur als eine Funktion, text als text im button und den link als "URL".
    Mehr eigentlich nich .

    Zu meinem Anhang:
    in der ZIP sind fla,swf sowie zwei "PHP" Scripte [das Original (cmsx.navigation1.php), sowie meine Version (cmsx.navigation1_NEW.php)].

    Wenn Du eine AS hast, wellches man leichter modifizieren kann würde ich auch das gerne nehmen, da es mir nicht wirklich um DIESES menü geht, sondern ehr um das parsen...
    Angehängte Dateien
    Geändert von Nova969 (18.05.2005 um 17:12 Uhr)

  6. #6
    TP-Veteran root_alpha hilft, wo's geht root_alpha hilft, wo's geht root_alpha hilft, wo's geht Avatar von root_alpha
    Registriert seit
    May 2003
    Ort
    münchen
    Beiträge
    1.745
    Hi@nova969,

    Hab mir mal das menü gesaugt aber angeschaut habe ich es noch nicht.

    Schau Dir aber mal dieses Menü an evtl. ist es genau das was du suchst !?.
    mfg. - - Mario - - Icq 124346551 : MyWebHome :

  7. #7
    TP-Junior Nova969 macht alles soweit korrekt
    Registriert seit
    Jan 2004
    Ort
    Höxter
    Beiträge
    17
    Ja danke, aber das menü habe ich schon, kann ich leider auch nichts mit anfangen, da die untermenüs auch nur über attributes funktionieren.
    Mein Menü muss alle childNodes auslesen, dann einige ignorieren und den "parentNode" Eigenschaften zuweisen. Dann aber immer noch schaun, ob da weiter Untermenüpunkte sind...

    Suche schon seit 4 Tagen, Da ich aber nichts gefunden habe hab ich mal gepostet. Habe inzwischen eine recht nette Scriptsammlung, die mir aber leider nichts nutzt

    Trotzdem Danke für Deine Bemühung!

+ Antworten

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51