Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 16-03-2004, 06:56   #1 (permalink)
Der Suchende
 
Benutzerbild von danivsflash
 
Registriert seit: Mar 2004
Beiträge: 5
Untermenü erscheint nicht, beim zweiten Aufruf!

Ich habe ein Problem mit meinem dynamischen Menü. Das meiste funktioniert schon so wie ich es möchte, bis auf eine wichtige Funktion:

Funtionsweise:

Wenn man über einen der Punkte des Hauptmenüs fährt, öffnet sich direkt darunter ein Untermenü, das wiederum ein dynamisches Menü ist. Mein Hauptmenü wird richtig erstellt. Auch der erste Rollover über einen Punkt des Hauptmenüs funktioniert ohne Probleme, doch wenn ich dann über einen anderen Punkt des Hauptmenüs fahre tut sich nichts. Es wird kein neues Untermenü geöffnet. Das neue Untermenü, soll an der Stelle des alten Untermenüs erscheinen. Ich hoffe ihr könnt mir helfen. Komm einfach nicht auf die Lösung und kapier nicht, was da falsch läuft. Ich habe schon nach ner Lösung ausgibig im Forum gesucht, aber nichts derartiges gefunden.

Hier der Aufbau meines Filmes:

In der Hauptleiste im ersten Frame liegt mein Haupt-MC.
Der Haupt-MC sieht so aus:
AS im ersten Frame - .txt Datei wir geladen und Werte in Array gespeichert:

ActionScript:
  1. pfad = "navi.txt";
  2. menüpunkt = "hauptnavi";
  3. varLaden(pfad, menüpunkt);
  4. function varLaden(pfad, menüpunkt) {
  5.     Laden = new LoadVars();
  6.     Laden.load(pfad);
  7.     eintrag = new Array();
  8.     Laden.onLoad = function(success) {
  9.         if (success) {
  10.             anzahl = Laden.anzahl;
  11.             for (i=0; i<=anzahl; i++) {
  12.                 eintrag[i] = Laden[menüpunkt+i];
  13.             }
  14.             gotoAndStop(2);
  15.         } else {
  16.             trace("Nicht geladen");
  17.         }
  18.     };
  19.     stop();
  20. }

AS im zweiten Frame des Haupt-MC:

ActionScript:
  1. x1 = 0;
  2. y1 = 0;
  3. fuellen(x1, y1);
  4. function fuellen(x1, y1) {
  5.     for (var i = 0; i<=anzahl; i++) {
  6.         var mc = this.createEmptyMovieClip(["navi"+i], i-1);
  7.         xWert = x1;
  8.         yWert = y1;
  9.         mc.id = i;
  10.         mc._x = xWert;
  11.         mc._y = yWert;
  12.         mc.createTextField(["navi"+i], a++, 20, 0, 100, 100);
  13.         with (mc["navi"+i]) {
  14.             textColor = 0xFFFFFF;
  15.             autoSize = true;
  16.             text = this.eintrag[i];
  17.             feldBreite = mc["navi"+i].textWidth;
  18.             x1 = x1+feldbreite+30;
  19.             trace(feldbreite);
  20.             trace("x="+x1);
  21.             trace("y="+y1);
  22.             trace(eintrag[i]);
  23.         }
  24.         mc.onRollOver = function() {
  25.             this["navi"+this.id].textColor = 0xffbDD9;
  26.             übergabe = this["navi"+this.id].text;
  27.             trace(übergabe);
  28.             gotoAndStop(5);
  29.         };
  30.         mc.onRollOut = function() {
  31.             this["navi"+this.id].textColor = 0xFFFFFF;
  32.         };
  33.     }
  34.     stop();
  35. }

Im fünften Frame des Haupt-MC liegt der 2. MC(Untermenü)
AS im ersten Frame des 2. MC:

ActionScript:
  1. trace(_parent.übergabe);
  2. unterpfad = _parent.übergabe+".txt";
  3. untermenüpunkt = _parent.übergabe;
  4. varLadenunter(unterpfad, untermenüpunkt);
  5.  
  6. function varLadenunter(unterpfad, untermenüpunkt) {
  7.     unterLaden = new LoadVars();
  8.     unterLaden.load(unterpfad);
  9.     untereintrag = new Array();
  10.     unterLaden.onLoad = function(success) {
  11.         if (success) {
  12.             anzahl = unterLaden.anzahl;
  13.             for (i=0; i<=anzahl; i++) {
  14.                 untereintrag[i] = unterLaden[untermenüpunkt+i];
  15.                 trace(untereintrag[i]);
  16.             }
  17.             gotoAndStop(2);
  18.         } else {
  19.             trace("Nicht geladen");
  20.         }
  21.     };
  22.     stop();
  23. }

AS im zweiten Frame des 2. MC:

ActionScript:
  1. unterfuellen(x1,y1);
  2. function unterfuellen (x1,y1) {
  3.     for (var i = 0; i<=anzahl; i++) {
  4.         var mc = this.createEmptyMovieClip(["naviunter"+i], i-1);
  5.         xWert =x1;
  6.         yWert =y1
  7.         mc.id = i;
  8.         mc._x = xWert;
  9.         mc._y = yWert;
  10.         mc.createTextField(["naviunter"+i], a++, 20, 0, 100, 100);
  11.         with (mc["naviunter"+i]) {
  12.             textColor = 0xFFFFFF;
  13.             autoSize = true;
  14.             text = this.untereintrag[i];
  15.             feldBreite = mc["naviunter"+i].textWidth;
  16.             x1 = x1+feldbreite+30;
  17.             trace(feldbreite);
  18.             trace("x="+x1);
  19.             trace("y="+y1);
  20.             trace(untereintrag[i]);
  21.         }
  22.         mc.onRollOver = function() {
  23.             this["naviunter"+this.id].textColor = 0xffbDD9;
  24.         };
  25.         mc.onRollOut = function() {
  26.             this["naviunter"+this.id].textColor = 0xFFFFFF;
  27.         };
  28.    
  29.     }
  30.     stop();
  31. }

Das wars!
Hoffe, daß jemand helfen kann!
Danke schon im voraus!

Gruß danivsflash
danivsflash ist offline   Mit Zitat antworten
Alt 16-03-2004, 21:24   #2 (permalink)
Der Suchende
 
Benutzerbild von danivsflash
 
Registriert seit: Mar 2004
Beiträge: 5
Hat den niemand eine Idee oder einen Hiweis, bin total am Verzweifeln!

Bin für jeden Rat dankbar!
danivsflash ist offline   Mit Zitat antworten
Alt 17-03-2004, 00:45   #3 (permalink)
Neuer User
 
Registriert seit: Mar 2004
Ort: remscheid
Beiträge: 18
dein script ist nicht wirklich nachvollziehbar.
__________________
konzentration auf das wesentliche
docpsyc ist offline   Mit Zitat antworten
Alt 17-03-2004, 07:49   #4 (permalink)
Der Suchende
 
Benutzerbild von danivsflash
 
Registriert seit: Mar 2004
Beiträge: 5
Ich hab versucht alles Unwesentliche zu entferen und das Script zu kommentieren, falls was unklar ist bitte sofort fragen.

Hier nochmal der Aufbau meines Filmes:

In der Hauptleiste im ersten Frame liegt mein Hauptmenü MC.
Der Hauptmenü MC sieht so aus:
AS im ersten Frame - navi.txt Datei wir geladen und Werte in Array gespeichert:


ActionScript:
  1. // pfad meiner txt Datei
  2. pfad = "navi.txt";
  3.  
  4. // in meiner navi.txt Datei werden die Menüpunkte so beschrieben z.B. &hauptnavi1=Einleitung
  5. menüpunkt = "hauptnavi";
  6.  
  7. //Aufruf der Funktion varLaden() dieser werden 2 Werte mit übergeben, Pfad und Menüpunkt
  8. varLaden(pfad,menüpunkt);
  9.  
  10. function varLaden(pfad,menüpunkt) {
  11.     Laden = new LoadVars();
  12.     Laden.load(pfad);
  13.     eintrag = new Array();
  14.     Laden.onLoad = function(success) {
  15.         if (success) {
  16.             anzahl = Laden.anzahl;
  17.             for (i=0; i<=anzahl; i++) {
  18.                 eintrag[i] = Laden[menüpunkt+i];
  19.             }
  20.             gotoAndStop(2);
  21.         } else {
  22.             trace("Nicht geladen");
  23.         }
  24.     };
  25.     stop();
  26. }

AS im zweiten Frame des Hauptmenü MC:
MC wird erstellt und mit dynamischen Textfeldern versehen

ActionScript:
  1. //Aufrufen der Funtion fuellen()
  2. fuellen();
  3.  
  4. function fuellen() {
  5.     for (var i = 0; i<=anzahl; i++) {
  6.         var mc = this.createEmptyMovieClip(["navi"+i], i-1);
  7.         mc.id = i;
  8.         mc._x = x1;
  9.         mc.createTextField(["navi"+i], a++, 20, 0, 100, 100);
  10.  
  11.         //Eigenschaften der dynamischen Textfelder
  12.         with (mc["navi"+i]) {
  13.             textColor = 0xFFFFFF;
  14.             autoSize = true;
  15.             text = this.eintrag[i];
  16.             feldBreite = mc["navi"+i].textWidth;
  17.             x1 = x1+feldbreite+30;
  18.         }
  19.         mc.onRollOver = function() {
  20.             this["navi"+this.id].textColor = 0xffbDD9;
  21.             // die Variable übergabe wird im Untermenü MC benötigt
  22.             übergabe = this["navi"+this.id].text;
  23.             //Bei Rollover wird der Untermenü MC gestartet der im 5. Frame des Haupt-MC´s liegt
  24.             gotoAndStop(5);
  25.         };
  26.         mc.onRollOut = function() {
  27.             this["navi"+this.id].textColor = 0xFFFFFF;
  28.         };
  29.     }
  30.     stop();
  31. }
Im 5. Frame des Hauptmenü MC liegt mein 2. MC, das Untermenü
Diese Untermenü soll je nachdem über welchen Hauptmenüpunkt man mit der Maus fährt sich ändern
AS im ersten Frame des 2. MC:


ActionScript:
  1. //Anhand der Variable übergabe wird die Passende txt Datei ausgewählt, d.h. jeder Hauptmenüpunkt hat für sein Untermenü eine eigene txt Datei
  2. this.unterpfad = _parent.übergabe+".txt";
  3.  
  4. // in meiner einleitung.txt Datei: z.B. &Einleitung=Info
  5. this.untermenüpunkt = _parent.übergabe;
  6.  
  7. this.varLadenunter(unterpfad,untermenüpunkt);
  8.  
  9. function varLadenunter(unterpfad,untermenüpunkt) {
  10.     unterLaden = new LoadVars();
  11.     unterLaden.load(unterpfad);
  12.     untereintrag = new Array();
  13.     unterLaden.onLoad = function(success) {
  14.         if (success) {
  15.             anzahl = unterLaden.anzahl;
  16.             for (i=0; i<=anzahl; i++) {
  17.                 untereintrag[i] = unterLaden[untermenüpunkt+i];
  18.             }
  19.             gotoAndStop(2);
  20.         } else {
  21.             trace("Nicht geladen");
  22.         }
  23.     };
  24.     stop();
  25. }
AS im zweiten Frame des 2. MC:
Von der Funktion her eigentlich genau wie im 2. Frame des Hauptmenü MC
ActionScript:
  1. unterfuellen();
  2. function unterfuellen () {
  3.     for (var i = 0; i<=anzahl; i++) {
  4.         var mc = this.createEmptyMovieClip(["naviunter"+i], i-1);
  5.         mc.id = i;
  6.         mc._x = x1;
  7.         mc.createTextField(["naviunter"+i], a++, 20, 0, 100, 100);
  8.         with (mc["naviunter"+i]) {
  9.             textColor = 0xFFFFFF;
  10.             autoSize = true;
  11.             text = this.untereintrag[i];
  12.             feldBreite = mc["naviunter"+i].textWidth;
  13.             x1 = x1+feldbreite+30;
  14.         }
  15.         mc.onRollOver = function() {
  16.             this["naviunter"+this.id].textColor = 0xffbDD9;
  17.         };
  18.         mc.onRollOut = function() {
  19.             this["naviunter"+this.id].textColor = 0xFFFFFF;
  20.         };
  21.     }
  22.     stop();
  23. }

Die Variable anzahl die immer auftaucht, steht in jeder txt Datei, damit ich weiß wieviel Menüpunkte erstellt werden sollen z.B. &anzahl=3

Ich hoffe das Script wird jetzt klarer und jemand kann damit irgendwas anfangen! Steh erst am Anfang der ActioScript Programmierung und weiß nicht genau wo ich den Fehler suchen muß!

Viele dank für eure Unterstützung!
danivsflash ist offline   Mit Zitat antworten
Alt 18-03-2004, 08:45   #5 (permalink)
Der Suchende
 
Benutzerbild von danivsflash
 
Registriert seit: Mar 2004
Beiträge: 5
Hier könnt ihr euch die .fla und die .txt Dateien downloaden.

http://www.the-goat.de/Flash/Flashnavi.zip

Hoffe das hilft. Vielleicht versteht dann jemand mein Script.

Danke

Gruß danivsflash
danivsflash 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 08:06 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele