Variablen überschreiben

Denniz

Erfahrenes Mitglied
Hi @ all,

ich sitze hier an meinem Menu ich komm nicht weiter.
Habe einen mc Button1, wenn man diesen drückt sprigt man in den zweiten
Frame des Movieclips und dann öffnen sich weitere sublinks.
Jetzt ist es so das bevor man einen link klickt und den content dafür reinlad überprüft werden soll ob
der background schon geladen wurde oder nicht weil ich für jeden Button ein andern Background habe.

Wollte das Problem mit Variablen lösen.
Mit einer variable clickStatus und variable linkStatus die dann überschrieben werden
sollen.
Geht aber mal wieder nicht, wie immer.

Mein Skript in ersten frame auf root.
PHP:
stop();
var clickStatus = "false";
var linkStatus = "false";
this.button1.onPress = function() {
	button1.gotoAndStop(2);
};

Und dann in dem movieclip für button1 soll dan überpüft und überschriben werden.
Habs jetzt nur für link1 gemacht.
PHP:
stop();
this.link1_btn.onPress = function() {
	if (_root.clickStatus != "button1") {
		_root.containerbg.loadMovie("bg.swf");
		_root.container.loadMovie("link1.swf");
		_root.clickStatus = "button1";
		_root.linkStats = "link1";
		trace(_root.clickStatus);
	} else if (_root.clickStatus == "button1") {
		trace("bg wurde schon geladen");
		_root.container.loadMovie("link1.swf");
	}
};

Also wenn der clickStatus nicht button1 ist dann sollen Variablen überschriebn
werden und das loadMovie ausgeführt.
Ansonsten wenn clickStatus button1 dann soll nur der content reingeladen werden ohne
Background.

http://www.schrottplatz.pytalhost.com/variablenprob.zip
 
Ich weiß nicht obs an der Uhrzeit liegt oder ich mir nochmal die Flashbasics aneignen
muß aber wieso klappt soetwas hier nicht.
Das würd mir bei meinen Variablen Problem weiterhelfen.
Hab das hier im ersten Frame auf root gesetzt.

button.onPress = function() {
_root.button.gotoAndStop(2);
trace("button");
};
button.btn1.onPress = function() {
trace("1");
};
button.btn2.onPress = function() {
trace("2");
};
button.btn3.onPress = function() {
trace("3");
};


Also wenn ich den Button drücke soll dieser im gleichen movieclip zu frame 2 springen wo mehrer Buttons sind.
Wenn ich einen dieser Buttons drücke soll eine meldung erscheinen.
Wieso erscheint immer die meldung "button" obwohl ich btn1 oder btn2 oder btn3 drücke?
Kapier ich nicht.
 
Hi,

Dein Code funktioniert nicht, weil Du Mausereignisse nicht schachteln kannst: Das onPress-Ereignis in "button" überschreibt hier die onPress-Ereignisse in "link1_btn".

Eine unproblematische Lösung wäre, das Submenü nicht im MC "button" selbst unterzubringen, sondern getrennt auf die Bühne zu legen.

Alternativ kannst Du die MCs auch schachteln, das ursprüngliche onPress-Ereignis aber nicht auf den gesamten MC, sondern auf einen extra-Button innerhalb des Haupt-Clips legen.

Gruß
.
 
Ja danke jetzt weiß ich bescheid allerdings ist mir so ein phänomen bislang nocht nie
aufgefallen und ich hab schon einige mal mouseevents benutzt deswegen hat der mir auch nicht meine Variablen überschrieben.
Das dumme ist nur jetzt weiß ich nicht wie ich meine horizontales menu machen soll.
Ich habe 5 Buttons in der leiste und in diesen 5 Buttons sind wieder so immer um die 5 sublinks.
Die Sublinks werden erst sichtbar wenn ich auf einen Button klicke.
Soll ich jetzt alles auf einer Zeitleiste packen und mit Bildbezeichner arbeiten so das ich bei jedem klick auf die gewünschte stelle springe.
Da wird das ding aber sehr schnell unübersichlich wenn ich pro button eine ebene mache muß.

Was meinst du mit:

Alternativ kannst Du die MCs auch schachteln, das ursprüngliche onPress-Ereignis aber nicht auf den gesamten MC, sondern auf einen extra-Button innerhalb des Haupt-Clips legen.

Vielleicht weißt du noch ein rat.
 
Hi,

im Anhang findest Du ein Beispiel dazu.

Generell würde ich Dir empfehlen, derartige Dinge nicht über Zeitleisten zu regeln, sondern rein über ActionScript (spart Zeit und Nerven) - Objekte kannst Du prima über ihre _visible-Eigenschaft ausblenden, ohne mit gotoAndStop o.ä. herumfummeln zu müssen. ;)

Gruß
.
 

Anhänge

Zurück