Flash 8 - Fading von Schaltflächen

Sygate

Grünschnabel
Hallo Leute,

nun muss ich nach verzweifeltem Herumprobieren doch mal wieder professionelle Hilfe konsultieren...
Ich versuche gerade Schaltflächen zu erstellen, die beim berühren einen tollen Alphaeffekt zeigen (von 50% auf 100%). Das klappt auch soweit. Wenn ich jedoch wieder die Maus von den Schaltflächen entferne, sollten diese auch wieder die 50% Sichtbarkeit annehmen.
Das habe ich bis jetzt nur so gelöst, dass im Keyframe für "Auf" ein Movieclip sitzt, der den Text langsam ausfadet. Da jedoch am Anfang beim Szenenload alle Buttons diesen Zustand zuerst laden, sieht man am Anfang erst einmal alle Schaltflächen ausfaden.
Wie kann ich dieses Problem optimal lösen?

Viele Grüße,
Sygate
 
Guten Abend,
autsch - Schaltflächen! Benutz lieber MovieClips, die kannst du viel (bug-)freier verwenden und eigentlich mit ihnen machen, was du willst. Vor allem kannst du sie per ActionScript steuern:

Code:
_root.but1._alpha = 50;

_root.but1.onRollOver = function() {
	delete(this.onEnterFrame);
	this.onEnterFrame = function() {
		if(this._alpha < 100) {
			this._alpha += 8;
		} else {
			delete(this.onEnterFrame);
		}
	}
}

_root.but1.onRollOut = function() {
	delete(this.onEnterFrame);
	this.onEnterFrame = function() {
		if(this._alpha > 50) {
			this._alpha -= 8;
		} else {
			delete(this.onEnterFrame);
		}
	}
}

Für diesen Code muss der Button-MC "but1" heißen und der Code auf dem Hauptschlüsselbild stehen. Wenn du willst poste ich das ganze als fla.

Gruß udn gute Nacht
jens
 
Hey Jens,

erstmal danke für die schnelle Antwort. Das hat mich um einiges weiter gebracht.
Die fla brauchst Du nicht posten, trotzdem danke.
Ich hätte da noch eine weitere Frage: Insgesamt sind das ca. 10 Links, die ich setzen möchte. Muss ich für jeden einzelnen MC diese Fade-Funktion extra neu definieren oder kann ich mir das einfacher machen und nur den Inhaltstext und die Aktion neu schreiben und die Fade-Funktion einbinden?

Danke und auch eine gute Nacht,
Alex
 
Hallo,
wenn ich dich jetzt richtig verstanden habe, probiers mal wie folgt. Dabei müssen die Buttons "but1" bis "but10" heißen:

Code:
for (i=1; i<=10; i++) {
	_root["but"+i]._alpha = 50;
	_root["but"+i].idx = i; // Index setzen
	_root["but"+i].onRollOver = function() {
		delete (this.onEnterFrame);
		this.onEnterFrame = function() {
			if (this._alpha<100) {
				this._alpha += 8;
			} else {
				delete (this.onEnterFrame);
			}
		};
	};
	_root["but"+i].onRollOut = function() {
		delete (this.onEnterFrame);
		this.onEnterFrame = function() {
			if (this._alpha>50) {
				this._alpha -= 8;
			} else {
				delete (this.onEnterFrame);
			}
		};
	};
	_root["but"+i].onRelease = function() {
		trace("Button " + this.idx + " wurde geklickt!");
	};
}

Das mti den onRelease müsste eigentlich außerhalb von der for()-Schleife stehen und für jeden Button anders lauten. Hier im Beispiel hab ich sie mal allgemein formuliert und für jeden Button appelliert.

Grúß
jens
 
Hey Jens!
Erstmal vielen Dank für Deine rasche Antwort.
Folgende Frage habe ich jetzt noch:
Wenn ich einen dieser Buttons angeklickt habe, springt er in einem der Hauptzeitleiste untergeordneten Movieclip (content) an eine bestimmte Bildstelle. (mittels direkter Aktion, die ich auf den Button-MC gelegt hab)
Bei Button 1 springt er im MC content zu Keyframe 1 und stoppt dort.
Bei Button 2 springt er im MC content zu Keyframe 2 und stoppt dort.
usw...
Jetzt möchte ich überprüfen an welcher Stelle Flash in diesem Movieclip steht und die Buttons auf der Hauptebene dann dynamisch in Bezug auf diese Bedingung formatieren (kurz: Der Button, der aktiv ist soll den Alphawert 100% haben.)
Wie kann ich das am geschicktesten lösen?
Ich hoffe ich habe mich verständlich genug ausgedrückt!
Viele Grüße
Alex
 
Zurück