Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 18-08-2004, 14:50   #1 (permalink)
nah dran
 
Benutzerbild von -Panda-
 
Registriert seit: Sep 2002
Ort: Karlsruhe
Beiträge: 147
Question dynamisches Menü mit beliebig vielen Ebenen

Hallo Leute,

ich hab hier ein Problem, bei dem ich grad voll aussteige... Wenn jemand die Nerven hat, sich das mal reinzuziehen, oder einen treffenden Link weiß, wär echt super!

Ich versuche, ein Menü mit einer baumartigen Struktur zu erstellen, das sich beliebig oft verzweigen, also beliebig viele Tiefenebenen haben kann. Mein Ansatz war, das ganze mit einer rekursiven Funktion in Kombination mit einer for-Schleife zu lösen. Es ist etwas kompliziert, deshalb kurz ein paar Erklärungen zu meinem Script:

Die Variable levelmax legt die Anzahl der Tiefenebenen fest, mit level zähle ich bei der Erzeugung einer neuen Ebene um eins rauf. Subcount ist die Zahl der Unterpunkte, der Einfachheit halber erstmal für alle Menüpunkte auf 3 gesetzt.

Das Script klappt auch schon ein bißchen, d.h. der erste Arm wird komplett erzeugt, in meinem Beispiel sinds 3 Tiefenebenen. Wenn in der letzten Tiefenebene der letzte Menüpunkt erzeugt wurde, soll der zweite Arm erzeugt werden usw. Dazu muß ich level wieder zurücksetzen und da hakts gerade bei mir. Bei level-- werden im zweiten Arm nur noch zwei Ebenen erzeugt, denn eigentlich müßte ich level = 1 setzen, dann bekomme ich aber eine Endlosschleife.

Genug der Worte, hier mal das Script:


PHP-Code:
createSub = function (basepath) {
    for (var 
sub 0sub subcountsub++) {
        
subpath basepath.createEmptyMovieClip("sub" subsub);
        if (
sub == && level levelmax) {
            
level++;
        }
        
trace("level " level "---- " subpath);
        
// 
        
if (level == levelmax) {
            if (
sub == subcount 1) {
                
// wenn letzter level erreicht
                // restliche sub-brüder erzeugen (for-schleife läuft durch)
                
level--;
            }
        } else if (
level levelmax) {
            
// wenn letzter level noch nicht erreicht
            // einen level tiefer gehen
            // weiteres sub-child erzeugen
            
createSub(subpath);
        }
    }
};
//
var subcount 3;
var 
level 0;
var 
levelmax 3;
createSub(this); 

Keine Ahnung, vielleicht kann man das ganze auch viel einfacher lösen. Wäre froh, wenn jemand eine Idee hat!

Viele Grüße,
Panda
-Panda- ist offline   Mit Zitat antworten
Alt 18-08-2004, 15:02   #2 (permalink)
will code HTML for food
 
Benutzerbild von querkopf
 
Registriert seit: Mar 2003
Beiträge: 1.232
der Output schaut bei mir so aus:
Code:
level 1---- _level0.sub0
level 2---- _level0.sub0.sub0
level 3---- _level0.sub0.sub0.sub0
level 3---- _level0.sub0.sub0.sub1
level 3---- _level0.sub0.sub0.sub2
level 2---- _level0.sub0.sub1
level 3---- _level0.sub0.sub1.sub0
level 3---- _level0.sub0.sub1.sub1
level 3---- _level0.sub0.sub1.sub2
level 2---- _level0.sub0.sub2
level 3---- _level0.sub0.sub2.sub0
level 3---- _level0.sub0.sub2.sub1
level 3---- _level0.sub0.sub2.sub2
level 2---- _level0.sub1
level 3---- _level0.sub1.sub0
level 3---- _level0.sub1.sub1
level 3---- _level0.sub1.sub2
level 2---- _level0.sub2
level 3---- _level0.sub2.sub0
level 3---- _level0.sub2.sub1
level 3---- _level0.sub2.sub2
wie sollte er eigentlich aussehen?
__________________
Alles ist wie immer. Nur schlimmer.
querkopf ist offline   Mit Zitat antworten
Alt 18-08-2004, 15:11   #3 (permalink)
nah dran
 
Benutzerbild von -Panda-
 
Registriert seit: Sep 2002
Ort: Karlsruhe
Beiträge: 147
Genau, das sind die Menüpunkte, die gerade erzeugt werden. Der erste Arm (_level0.sub0) hat dann wie gewollt noch zwei weitere Unterebenen, _level0.sub1 und _level0.sub2 nur noch eine, aber der Aufbau sollte eigentlich wie bei _level0.sub0 sein.
-Panda- ist offline   Mit Zitat antworten
Alt 18-08-2004, 16:26   #4 (permalink)
will code HTML for food
 
Benutzerbild von querkopf
 
Registriert seit: Mar 2003
Beiträge: 1.232
wird da später nicht auch Inhalt drin sein?
(also ich denke mal, daß in einem Menü doch auch Links etc rein sollen? )

dann mach doch direkt ein Array, an dessen Grösse und Verzweigung Du dann den Rest aufbaust....
__________________
Alles ist wie immer. Nur schlimmer.
querkopf ist offline   Mit Zitat antworten
Alt 18-08-2004, 16:42   #5 (permalink)
nah dran
 
Benutzerbild von -Panda-
 
Registriert seit: Sep 2002
Ort: Karlsruhe
Beiträge: 147
Ja, klar gibts Inhalte, aber darum gehts jetzt erstmal nicht. Ich hab bei dem Beispiel lediglich versucht, das Problem auf das Wesentliche zu reduzieren.
-Panda- 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 05:52 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele