dynamisieren und animieren eines Menu

ok das funktioniert jetzt, trotzdem hab ich immernoch das Problem, dass sich die Farbe beim RollOut nicht wieder ändert!

PHP:
on(rollOver) {
         trace("in");
	txt_sub1.textColor = "#333333";
}
on(rollOut) {
         trace("out");
	txt_sub1.textColor = "#FFFFFF";
}

das in out funkt. also auch das rollOver und rollOut, nur die Farbe ändert sich nur bei rollOver wieso?
 
Zuletzt bearbeitet:
Und ich habe jetzt noch ein Problem :-(!

Ich möchte jetzt natürlich auch die anzahl der Menus dynamisch machen, dass funktioniert auch wunderbar bis auf den Aktionshandler onClipEvent da bringt er mir einen Scriptfehler den ich nicht versteh.
Das Script ist in mainMovie Bild 2, du musst es auskomentieren wenn du Menus erstellen willst!
Und ich bekomme das Submenu nicht zu gesicht obwohl es da ist!
aber ich denke das liegt an dem Scriptfehler, oder vielmehr das dass Script nicht da ist!
Ist ein wenig schwer zu erklären, wirst aber sehen was ich meine!
Wäre super wenn du mir nochmal helfen könntest!
 

Anhänge

  • navigation.zip
    22,7 KB · Aufrufe: 23
Hi,

1. Die Textfarbe wird als Hexadezimalwert, nicht als String angegeben:
PHP:
on(rollOver) {
	trace("in");
	txt_sub1.textColor = 0x333333;
}
on(rollOut) {
	trace("out");
	txt_sub1.textColor = 0xFFFFFF;
}

2. Es heisst nicht
PHP:
this["mc_Menu"+i].onCipEvent = function(enterFrame)
sondern:
PHP:
this["mc_Menu"+i].onEnterFrame = function() {
Des Weiteren musst Du auch das aktive Menü in dieser enterFrame-Methode abfragen und alla gotoAndPlay-Aktionen auf diesen Clip beziehen, sprich: ein "this" davor setzen. Die Funktion sollte dann etwa so aussehen:
PHP:
this["mc_Menu"+i].onEnterFrame = function(){ 
	if(_root.aktivesMenu == this.menuNumber) {
		this.aktiv = true;
	}else {
		this.aktiv = false;
	}
    if (this.hitTest(_root._xmouse, _root._ymouse)){ 
        if (this.aktiv) this.gotoAndStop(12);
		if (this._currentframe == 1) this.gotoAndPlay(2); 
		if (this._currentframe > 12) this.gotoAndPlay(2);
    }else{ 
		if (this.aktiv) {
			this.gotoAndStop(12);
		}else if (this._currentframe <= 12) {
			this.gotoAndPlay(13);
			//trace ("läuft");
		}else if (!läuft){
			this.gotoAndStop(1);
		}	
    	} 
}
Allerdings konnte ich nicht sehen, wo Du die Variable "aktivesMenu" setzt und wozu genau die gut ist. Da sie zu Beginn scheinbar den Wert 0 hat, ist das erste Menü immer sichtbar...

Gruß
.
 
Ja super, jetzt funktioniert es!
Das aktive Menu setzte ich im HTML Quelltext die 0 war nur zum testen!

Ein Problem hab ich jetzt trotzdem noch!

Die swf Datei wird immer aus dem Cache gelesen und so werden natürlich auch keine Änderungen z.B. in der xml Datei angezeigt
Wie kann ich die swf Datei bei jedem Besuch der Seite neu laden?
 
Häng einfach einen timeStamp an den Pfad der XML-Datei an, dann wird sie jedes Mal neu geladen:
PHP:
var now = new Date();
var y = now.getYear();
var m = now.getMonth();
var d = now.getDate();
var h = now.getHours();
var min = now.getMinutes();
var sec = now.getSeconds();
var mil = now.getMilliseconds();
var stamp = Date.UTC(y, m, d, h, min, sec, mil);
XMLdaten.load("navigation.xml?stamp=" + stamp);

Gruß
.
 
Auf die Gefahtr hin das ich dich schon langsam nerve, aber ich bemüh mich schon das meiste selber herauszubekommen!

Ich möchte an das Menu ja variablen weitergeben, dass ging auch mit
PHP:
"navigation.swf&aktivesMenu=3"
im HTMLQuelltext, jetzt möchte ich aber noch eine weitere Variabele übergeben, also hab ich sie so
PHP:
"navigation.swf&aktivesMenu=3&aktiverPunkt=Impressum"
übergeben, dann funkt. jedoch beides nicht mehr!
Wenn ich dann nur die variable aktiverPunkt übergebe geht es wieder!

Kann ich nur eine Variable so an Flash übergeben?
 
Machs mit FlashVars:
PHP:
<param name="FlashVars" value="aktivesMenu=3&aktiverPunkt=Impressum" />
// und im embed-Tag auch:
FlashVars="aktivesMenu=3&aktiverPunkt=Impressum"

Gruß
.
 
Hi,

der Fehler liegt daran, dass Du in Frame 1 das XML-Objekt lädst und in Frame 2 sofort das Menü aufbauen willst, ohne darauf zu laden, dass die Datei wirklich geladen ist. Hatten wir das Thema nicht schon einmal in einem anderen Thread? Füge in Frame 1 im Menüclip ein stop(); ein und sage am Ende Deiner onLoad-Funktion: gotoAndStop(2);.

Übrigens hast Du einige Fehler im Seitenquelltext, z.B. bei "Impressum":
HTML:
<param NAME="movie" VALUE="navigation.swf>
<param NAME=quality VALUE=high><br>
<param name="FlashVars value="aktivesMenu=3&aktiverPunkt=Impressum" />
Hier fehlen die Anführungszeichen nach "navigation.swf".

Gruß
.
 
Zuletzt bearbeitet:
Zurück