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:
// Hauptnavigation
attachMovie("navi_feld", this.navi_feld[i][0], i);
this[navi_feld[i][0]]._x = x;
this[navi_feld[i][0]]._y = y;
this[navi_feld[i][0]].navi_text.text.multiline = true;
this[navi_feld[i][0]].navi_text.text.border = false;
this[navi_feld[i][0]].navi_text.text.wordWrap = true;
this[navi_feld[i][0]].navi_text.text.autosize = "left";
this[navi_feld[i][0]].navi_text.text.text = this.navi_text[i][0];
this[navi_feld[i][0]].navi_text.text.embedFonts = true;
this[navi_feld[i][0]].navi_text.text.setTextFormat(navi_up);
this[navi_feld[i][0]].onRollover = function() {
if(active != this.navi_text.text._parent._parent._name)
this.navi_text.text.setTextFormat(navi_over);
}
this[navi_feld[i][0]].onRollOut = function() {
if(active != this.navi_text.text._parent._parent._name)
this.navi_text.text.setTextFormat(navi_up);
}
this[navi_feld[i][0]].onRelease = function() {
if(active != this.navi_text.text._parent._parent._name) {
this.navi_text.text.setTextFormat(navi_down);
this.navi_text._parent._parent[active].navi_text.text.setTextFormat(navi_up);
active = this.navi_text._parent._name;
// Aufruf der Subnavi
_root.navi.attachMovie("subnavi", "subnavi", 100);
_root.navi.subnavi.i = this.navi_text._parent._name;
}
}
y = this[navi_feld[i][0]]._y+this[navi_feld[i][0]]._height;
i++;
Die Variablen und Arrays werden in Frame 1 initialisiert:
ActionScript:
// von PHP importiertes Array für Navi-Punkte
navi_text = _root.navi_text.split("|");
for(i=0;i<navi_text.length;i++){
navi_text[i]=navi_text[i].split(",");
}
// Array für dyn. Textfeld-Bezeichnungen
navi_feld = [[]];
for (i=0; i<navi_text.length; i++) {
navi_feld[i][0] = "nummer["+i+"]["+0+"]";
navi_feld.push([]);
for (j=1; j<navi_text[i].length; j++) {
navi_feld[i][j] = "nummer["+i+"]["+j+"]";
}
}
// Array für Nummern
nummer = [[]];
for (i=0; i<navi_text.length; i++) {
navi_feld[i][0] = i;
navi_feld.push([]);
for (j=1; j<navi_text[i].length; j++) {
navi_feld[i][j] = j;
}
}
Die Hauptnavigation liegt in Frame 2, in Frame 3 steht folgendes:
ActionScript:
if(i<navi_text.length)
gotoAndPlay(2);
else
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:
// Subnavi
attachMovie("navi_feld", _parent.navi_feld[i][j], j);
_parent[navi_feld[i][j]]._x = x;
_parent[navi_feld[i][j]]._y = y;
_parent[navi_feld[i][j]].navi_text.text.multiline = true;
_parent[navi_feld[i][j]].navi_text.text.border = false;
_parent[navi_feld[i][j]].navi_text.text.wordWrap = true;
_parent[navi_feld[i][j]].navi_text.text.autosize = "left";
_parent[navi_feld[i][j]].navi_text.text.text = _parent.navi_text[i][j];
_parent[navi_feld[i][j]].navi_text.text.embedFonts = true;
_parent[navi_feld[i][j]].navi_text.text.setTextFormat(navi_up);
_parent[navi_feld[i][j]].onRollover = function() {
if(active != this.navi_text.text._parent._parent._name)
this.navi_text.text.setTextFormat(navi_over);
}
_parent[navi_feld[i][j]].onRollOut = function() {
if(active != this.navi_text.text._parent._parent._name)
this.navi_text.text.setTextFormat(navi_up);
}
_parent[navi_feld[i][j]].onRelease = function() {
if(active != this.navi_text.text._parent._parent._name) {
this.navi_text.text.setTextFormat(navi_down);
this.navi_text._parent._parent[active].navi_text.text.setTextFormat(navi_up);
active = this.navi_text._parent._name;
}
}
y = _parent[navi_feld[i][j]]._y+_parent[navi_feld[i][j]]._height;
j++;
Frame 3 der Unternavigation:
ActionScript:
if(j<_parent.navi_text[i].length)
gotoAndPlay(2);
else
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