Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 07-05-2004, 16:48   #1 (permalink)
Ühnen
 
Benutzerbild von Barabas1977
 
Registriert seit: Aug 2003
Ort: Bad Nauheim
Beiträge: 52
Objekte und eckige Klammern

Hallo,

ich bin gerade dabei, eine dynamische Navigation zu entwickeln, und mein Skript will einfach nicht funktionieren
Folgender Aufbau: Hauptnavigation, in der per AS mcs mit dynamischen Textfeldern erstellt und untereinander platziert werden. Funktioniert auch soweit.

ACHTUNG, jetzt kommt erstmal viel Lesestoff!!! (aber vielleicht wichtig für die Problemlösung)

ActionScript:
  1. // Hauptnavigation
  2. attachMovie("navi_feld", this.navi_feld[i][0], i);
  3. this[navi_feld[i][0]]._x = x;
  4. this[navi_feld[i][0]]._y = y;
  5. this[navi_feld[i][0]].navi_text.text.multiline = true;
  6. this[navi_feld[i][0]].navi_text.text.border = false;
  7. this[navi_feld[i][0]].navi_text.text.wordWrap = true;
  8. this[navi_feld[i][0]].navi_text.text.autosize = "left";
  9. this[navi_feld[i][0]].navi_text.text.text = this.navi_text[i][0];
  10. this[navi_feld[i][0]].navi_text.text.embedFonts = true;
  11. this[navi_feld[i][0]].navi_text.text.setTextFormat(navi_up);
  12. this[navi_feld[i][0]].onRollover = function() {
  13.     if(active != this.navi_text.text._parent._parent._name)
  14.         this.navi_text.text.setTextFormat(navi_over);
  15. }
  16. this[navi_feld[i][0]].onRollOut = function() {
  17.     if(active != this.navi_text.text._parent._parent._name)
  18.         this.navi_text.text.setTextFormat(navi_up);
  19. }
  20. this[navi_feld[i][0]].onRelease = function() {
  21.     if(active != this.navi_text.text._parent._parent._name) {
  22.         this.navi_text.text.setTextFormat(navi_down);
  23.         this.navi_text._parent._parent[active].navi_text.text.setTextFormat(navi_up);
  24.         active = this.navi_text._parent._name;
  25.         // Aufruf der Subnavi
  26.         _root.navi.attachMovie("subnavi", "subnavi", 100);
  27.         _root.navi.subnavi.i = this.navi_text._parent._name;
  28.     }
  29. }
  30. y = this[navi_feld[i][0]]._y+this[navi_feld[i][0]]._height;
  31. i++;
Die Variablen und Arrays werden in Frame 1 initialisiert:
ActionScript:
  1. // von PHP importiertes Array für Navi-Punkte
  2. navi_text = _root.navi_text.split("|");
  3. for(i=0;i<navi_text.length;i++){
  4.     navi_text[i]=navi_text[i].split(",");
  5. }
  6.  
  7. // Array für dyn. Textfeld-Bezeichnungen
  8. navi_feld = [[]];
  9. for (i=0; i<navi_text.length; i++) {
  10.     navi_feld[i][0] = "nummer["+i+"]["+0+"]";
  11.     navi_feld.push([]);
  12.     for (j=1; j<navi_text[i].length; j++) {
  13.         navi_feld[i][j] = "nummer["+i+"]["+j+"]";
  14.     }
  15. }
  16.  
  17. // Array für Nummern
  18. nummer = [[]];
  19. for (i=0; i<navi_text.length; i++) {
  20.     navi_feld[i][0] = i;
  21.     navi_feld.push([]);
  22.     for (j=1; j<navi_text[i].length; j++) {
  23.         navi_feld[i][j] = j;
  24.     }
  25. }

Die Hauptnavigation liegt in Frame 2, in Frame 3 steht folgendes:
ActionScript:
  1. if(i<navi_text.length)
  2.     gotoAndPlay(2);
  3. else
  4.     stop();
Die Unternavigation erscheint rechts daneben und liegt in einem eigenen mc in Frame 2. In Frame 1 werden x, y und j bestimmt.
ActionScript:
  1. // Subnavi
  2. attachMovie("navi_feld", _parent.navi_feld[i][j], j);
  3. _parent[navi_feld[i][j]]._x = x;
  4. _parent[navi_feld[i][j]]._y = y;
  5. _parent[navi_feld[i][j]].navi_text.text.multiline = true;
  6. _parent[navi_feld[i][j]].navi_text.text.border = false;
  7. _parent[navi_feld[i][j]].navi_text.text.wordWrap = true;
  8. _parent[navi_feld[i][j]].navi_text.text.autosize = "left";
  9. _parent[navi_feld[i][j]].navi_text.text.text = _parent.navi_text[i][j];
  10. _parent[navi_feld[i][j]].navi_text.text.embedFonts = true;
  11. _parent[navi_feld[i][j]].navi_text.text.setTextFormat(navi_up);
  12. _parent[navi_feld[i][j]].onRollover = function() {
  13.     if(active != this.navi_text.text._parent._parent._name)
  14.         this.navi_text.text.setTextFormat(navi_over);
  15. }
  16. _parent[navi_feld[i][j]].onRollOut = function() {
  17.     if(active != this.navi_text.text._parent._parent._name)
  18.         this.navi_text.text.setTextFormat(navi_up);
  19. }
  20. _parent[navi_feld[i][j]].onRelease = function() {
  21.     if(active != this.navi_text.text._parent._parent._name) {
  22.         this.navi_text.text.setTextFormat(navi_down);
  23.         this.navi_text._parent._parent[active].navi_text.text.setTextFormat(navi_up);
  24.         active = this.navi_text._parent._name;
  25.         }
  26. }
  27. y = _parent[navi_feld[i][j]]._y+_parent[navi_feld[i][j]]._height;
  28. j++;
Frame 3 der Unternavigation:
ActionScript:
  1. if(j<_parent.navi_text[i].length)
  2.     gotoAndPlay(2);
  3. else
  4.     stop();
Die Hauptnavigation wird korrekt ausgegeben, nur die Unternavigation funktioniert nicht. Was mache ich falsch? Ist da ein Fehler mit den eckigen Klammern? Der Aufbau der Unternavigation ist doch eigentlich identisch mit dem der Hauptnavigation, oder?

Vielen Dank schonmal im Voraus
Gruß Flo

Geändert von Barabas1977 (07-05-2004 um 16:59 Uhr)
Barabas1977 ist offline   Mit Zitat antworten
Alt 07-05-2004, 17:24   #2 (permalink)
Ühnen
 
Benutzerbild von Barabas1977
 
Registriert seit: Aug 2003
Ort: Bad Nauheim
Beiträge: 52
Hab es rausgekriegt. Die Subnavi muss so aussehen:
ActionScript:
  1. // Subnavi
  2. attachMovie("navi_feld", _parent.navi_feld[i][j], j);
  3. this[_parent.navi_feld[i][j]]._x = x;
  4. this[_parent.navi_feld[i][j]]._y = y;
  5. this[_parent.navi_feld[i][j]].navi_text.text.multiline = true;
  6. this[_parent.navi_feld[i][j]].navi_text.text.border = false;
  7. this[_parent.navi_feld[i][j]].navi_text.text.wordWrap = true;
  8. this[_parent.navi_feld[i][j]].navi_text.text.autosize = "left";
  9. this[_parent.navi_feld[i][j]].navi_text.text.text = _parent.navi_text[i][j];
  10. this[_parent.navi_feld[i][j]].navi_text.text.embedFonts = true;
  11. this[_parent.navi_feld[i][j]].navi_text.text.setTextFormat(_parent.navi_up);
  12. this[_parent.navi_feld[i][j]].onRollover = function() {
  13.     if(active != this.navi_text.text._parent._parent._name)
  14.         this.navi_text.text.setTextFormat(_parent.navi_over);
  15. }
  16. this[_parent.navi_feld[i][j]].onRollOut = function() {
  17.     if(active != this.navi_text.text._parent._parent._name)
  18.         this.navi_text.text.setTextFormat(_parent.navi_up);
  19. }
  20. this[_parent.navi_feld[i][j]].onRelease = function() {
  21.     if(active != this.navi_text.text._parent._parent._name) {
  22.         this.navi_text.text.setTextFormat(_parent.navi_down);
  23.         this.navi_text._parent._parent[active].navi_text.text.setTextFormat(_parent.navi_up);
  24.         active = this.navi_text._parent._name;
  25.         }
  26. }
  27. y = this[_parent.navi_feld[i][j]]._y+this[_parent.navi_feld[i][j]]._height;
  28. j++;
Barabas1977 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 23:07 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele