2 MCs als Button übereinander

raytracer

Grünschnabel
Hallo Zusammen,

folgendes Problem: Ich habe eine Navigation - bestehend aus 5 Elementen.
Jedes Element soll bei onRollOver und onRollOut ein- und ausfaden (alpha). Das
Script siehe unten. Das funktioniert auch wunderbar.
Nun möchte ich aber das auch für die komplette Navigation in einem bestimmten
Bereich (Aktiver Bereich). Geht die Mouse rein fadet die Navigation ein,
geht die Mouse raus fadet die Navigation aus.

Ich wäre super dankbar um Hilfe!

Der Code zu den einzelnen Elementen:

Code:
nSpeed=10;
outSpeed=4;

// einer von 5 Buttons

naviproduct._alpha=40;
naviproduct.onRollOver=function(){
	this.onEnterFrame=function(){
		this._alpha+=inSpeed;
		if(this._alpha>100){
			this._alpha=100;
			delete this.onEnterFrame;
		}
	}
}
naviproduct.onRollOut=function(){
	this.onEnterFrame=function(){
		this._alpha-=outSpeed;
		if(this._alpha<40){
			this._alpha=40;
			delete this.onEnterFrame;
		}
	}
}
 

Anhänge

  • navi_code_help.zip
    868,9 KB · Aufrufe: 11
Zuletzt bearbeitet von einem Moderator:
Nun möchte ich aber das auch für die komplette Navigation in einem bestimmten
Bereich (Aktiver Bereich). Geht die Mouse rein fadet die Navigation ein,
geht die Mouse raus fadet die Navigation aus.

Tag.
Mach einen unsichtbaren Movieclip (alpha = 0) mit nem Rechteck drin, dann nimm halt statt naviproduct den Namen des unsichtbaren MCs und statt this den Namen des MCs, in dem die Navigation drin ist.
 
Das hatte ich auch schon probiert, die Navigation wird dann ein und ausgeblendet.
Dafür die 5 Buttons nicht mehr. Siehe navi_code_help_02.zip

Ich habs fast geschafft, wie ich will, jedoch blendet die Navi nur ruckartig ein und aus und fadet nicht ein und aus:

Code:
this.onEnterFrame = function() {
	if (this.hitTest(_parent._xmouse, _parent._ymouse)) {
		this._visible = true;
	} else {
		this._visible = false;
	}
};

siehe navi_code_help_03.zip
 

Anhänge

  • navi_code_help_02.zip
    1,7 MB · Aufrufe: 12
  • navi_code_help_03.zip
    1,7 MB · Aufrufe: 10
Natürlich kommt das ruckartig, wenn man einfach _visible auf false setzt. Das sollte aber kaum jemanden verwundern.

Das hatte ich auch schon probiert, die Navigation wird dann ein und ausgeblendet.
Dafür die 5 Buttons nicht mehr.
Das ist dann wohl so, weil der große MC die rollOver-Funktion bekommt und nicht die kleinen, sie werden also von dem großen MC 'verdeckt'. Du könntest Lücken für die Buttons in ihn rein schneiden. Aber Obacht, dann wird beim rollOver der Buttons nicht mehr der rollOver des Menüs generell ausgeführt - du musst also entsprechenden Code bei den Buttons ergänzen.
 
Das mit den Lücken funktioniert leider nicht, da ja die kleinen Buttons im Großen drinnen liegen und somit die Lücken verdecken.

Nachdems hiermit schon halb funktioniert, kann man das denn nicht umbauen
dass anstatt die visible funktion die mit dem Alpha diese ersetzt? Leider ist mein
AS nicht so mächtig...

Code:
this.onEnterFrame = function() {
	if (this.hitTest(_parent._xmouse, _parent._ymouse)) {
		this._visible = true;
	} else {
		this._visible = false;
	}
};
 
Dann nimm die kleinen aus dem großen raus...? Die if-Abfrage mit dem hitTest kann mit dem obigen Code kombiniert werden - die Abfrage ersetzt dann einfach den Aufruf oder onRollOver-Funktion.
 
Erstmal Vielen Dank für Dein Bemühen!
Wenn ich jetzt die 5 Kleinen aus dem Großen rausnehme dann sehe ich ja leider
gar keine Navi mehr. Wie kombiniere ich denn die if-Abfrage mit dem obigen Code?
Langsam fange ich an zu verzweifeln... :(
 
Hey.
Nicht verzagen :) Das Kombinieren ist eigentlich ganz einfach. Immer am Besten ist es, die Scripts die man benutzt auch zu verstehen. Komplett. Also setz dich mal ne Viertelstunde hin mit dem Code und der Flashreferenz und arbeite dich durch - es lohnt sich!

Hier die Kombination:
Code:
this.onEnterFrame = function() {
	if (this.hitTest(_parent._xmouse, _parent._ymouse)) {
		if(this._alpha<100){
			this._alpha+=inSpeed;
		}
	} else {
		if(this._alpha<40){
			this._alpha-=outSpeed;
		}
	}
};

Wenn du den nimmst brauchst du die Buttons auch nicht mehr aus dem großen MC rausnehmen.
 
Zurück