Menü funktioniert nicht

Wenn ich mit der Maus über einen Button gehe, ändert sich doch die Schrift von Weiß nach Grau. Das soll quasie ständig laufen.

Sorry... deutsche Sprache schwere Sprache ;-)
 
Aha, verwirrt hatte mich das "nicht nur vom Text ändern", da es ja nach wie vor um den Text geht ...

Nimm die Handler für onRollOver und onRollOut raus und ersetze sie mit dem Aufruf:
Code:
fadeTo(-100, 5);
Dann ändere die Funktion "fadeTo" folgendermaßen ab:
Code:
function fadeTo(d, s) {
	this.onEnterFrame = function() {
		tr.rb += (d - tr.rb) / s;
		tr.gb = tr.bb = tr.rb;
		cl.setTransform(tr);
		if (Math.abs(d - tr.rb) < 1) {
			tr.rb = tr.gb = tr.bb = d;
			cl.setTransform(tr);
			fadeTo((d < 0)? 0 : -100, 5);
		}
	}
}
(die beiden rot markierten Werte kannst Du anpassen, falls Dir -100 noch zu hell ist...)

Gruß
.
 
Wird immer mehr Licht im Dunkel ;-)

Ne Frage noch, wo ist denn die Farbe definiert, in die die Schrift in der Methode wechselt?

Ich meine die Schrift wechlelt ja bei MouseOver ins graue. Wo ist diese graue Farbe definiert?
 
... das hab ich doch in meinem vorherigen Posting erwähnt. :rolleyes:

Schau Dir bitte mal die Funktion "fadeTp" an und dann die Beschreibung aller Methoden, die dort verwendet werden (z.B. Color.setTransform) - damit solltest Du selbst in der Lage sein, Licht ins Dunkel zu bringen. ;)

Genügt Dir keine einfache Verdunkelung oder Aufhellung, so such mal im Forum nach meinem fadeTo-Prototype - damit kannst Du beliebige Farbtransformationen auf einem MovieClip ausführen.

Gruß
.
 
Hab jetzt bald alles so wie es sein soll. Nur ist mir beim testen aufgefallen, dass wenn ich in HTML veröffentliche, das Menü ausgefahren bleibt wenn ich mit der Maus den Flash bereich nach unten weg verlasse. Wie kann ich das ändern, damit das Menü wieder einfährt, so wie es sein soll.

Grüße,
Eddy
 
Hi,

auf diese Weise leider garnicht (zumindest nicht zuverlässig). Eine mögliche Lösung wäre folgendes:

Du reagierst im Menü auf einen rollOver auf dem Hintergrund (bgnd) und zugleich auf die RollOver-Ereignisse auf den Buttons. Immer, wenn entweder auf dem Hintergrund oder auf einem Button ein rollOver registriert worden ist, fährst Du das Menü aus, andernfalls ein.

Modifizierter Code im Menü:
Code:
this.useHandCursor = false;

var by = this._y;
var that = this;

but1._caption = "Leistung 1";
but2._caption = "Leistung 2";
but3._caption = "Nummer 3";
but4._caption = "Nummer 4";

function pressed(obj) {
	switch(obj) {
		case but1: getURL("link1.htm"); break;
		case but2: getURL("link2.htm"); break;
		case but3: getURL("link3.htm"); break;
		case but4: getURL("link4.htm"); break;
	}
}

this.onEnterFrame = function() {
	if (butover || bgndover) {
		slide(by - 95, 3);
	} else {
		slide(by, 5);
	}
}

var bgndover = false;
var butover = false;

bgnd.onRollOver = function() {
	bgndover = true;
}
bgnd.onRollOut = bgnd.onDragOut = function() {
	bgndover = false;
}

function slide(dy, s) {
	bgnd.onEnterFrame = function() {
		that._y += (dy - that._y) / s;
		if (Math.abs(dy - that._y) < 1) {
			that._y = dy;
			delete this.onEnterFrame;
		}
	}
}

In den Buttons werden dann nur die onRollOver- und onRollOut-Handler geändert:
Code:
this.onRollOver = function() {
	fadeTo(-100, 5);
	_parent.butover = true;
}

this.onRollOut = this.onDragOut = function() {
	fadeTo(0, 7);
	_parent.butover = false;
}

Gruß
.
 
Habe es genau so gemacht wie du es gesagt hat. Es ist also momentan so:

Menü
Code:
this.useHandCursor = false;

this.onEnterFrame = function() {
	if (_caption != undefined) {
		btext.text = _caption;
		delete this.onEnterFrame;
	}
}

this.onRollOver = function() {
	fadeTo(-100, 5);
	_parent.butover = true;
}

this.onRollOut = this.onDragOut = function() {
	fadeTo(0, 7);
	_parent.butover = false;
}

this.onRelease = function() {
	_parent.pressed(this);
}

var cl = new Color(this);
var tr = cl.getTransform();

function fadeTo(d, s, _callback, _cbp) {
	this.onEnterFrame = function() {
		tr.rb += (d - tr.rb) / s;
		tr.gb = tr.bb = tr.rb;
		cl.setTransform(tr);
		if (Math.abs(d - tr.rb) < 1) {
			tr.rb = tr.gb = tr.bb = d;
			cl.setTransform(tr);
			delete this.onEnterFrame;
			_callback(_cbp);
		}
	}
}

Button
Code:
this.useHandCursor = false;

this.onEnterFrame = function() {
	if (_caption != undefined) {
		btext.text = _caption;
		delete this.onEnterFrame;
	}
}

this.onRollOver = function() {
	fadeTo(-100, 5);
	_parent.butover = true;
}

this.onRollOut = this.onDragOut = function() {
	fadeTo(0, 7);
	_parent.butover = false;
}

this.onRelease = function() {
	_parent.pressed(this);
}

var cl = new Color(this);
var tr = cl.getTransform();

function fadeTo(d, s, _callback, _cbp) {
	this.onEnterFrame = function() {
		tr.rb += (d - tr.rb) / s;
		tr.gb = tr.bb = tr.rb;
		cl.setTransform(tr);
		if (Math.abs(d - tr.rb) < 1) {
			tr.rb = tr.gb = tr.bb = d;
			cl.setTransform(tr);
			delete this.onEnterFrame;
			_callback(_cbp);
		}
	}
}

Nun bekomme ich folgende Fehlermeldung:

**Fehler** Symbol=MLeistungen, Ebene=Text, Bild=1:Zeile 1: Anweisung muss innerhalb einer on/onClipEvent-Prozedur vorliegen
this.useHandCursor = false;

**Fehler** Symbol=MLeistungen, Ebene=Text, Bild=1:Zeile 3: Anweisung muss innerhalb einer on/onClipEvent-Prozedur vorliegen
var by = this._y;

**Fehler** Symbol=MLeistungen, Ebene=Text, Bild=1:Zeile 4: Anweisung muss innerhalb einer on/onClipEvent-Prozedur vorliegen
var that = this;

**Fehler** Symbol=MLeistungen, Ebene=Text, Bild=1:Zeile 6: Anweisung muss innerhalb einer on/onClipEvent-Prozedur vorliegen
but1._caption = "Leistung 1";

**Fehler** Symbol=MLeistungen, Ebene=Text, Bild=1:Zeile 7: Anweisung muss innerhalb einer on/onClipEvent-Prozedur vorliegen
but2._caption = "Leistung 2";

**Fehler** Symbol=MLeistungen, Ebene=Text, Bild=1:Zeile 8: Anweisung muss innerhalb einer on/onClipEvent-Prozedur vorliegen
but3._caption = "Nummer 3";

**Fehler** Symbol=MLeistungen, Ebene=Text, Bild=1:Zeile 9: Anweisung muss innerhalb einer on/onClipEvent-Prozedur vorliegen
but4._caption = "Nummer 4";

**Fehler** Symbol=MLeistungen, Ebene=Text, Bild=1:Zeile 11: Anweisung muss innerhalb einer on/onClipEvent-Prozedur vorliegen
function pressed(obj) {

**Fehler** Symbol=MLeistungen, Ebene=Text, Bild=1:Zeile 20: Anweisung muss innerhalb einer on/onClipEvent-Prozedur vorliegen
this.onEnterFrame = function() {

**Fehler** Symbol=MLeistungen, Ebene=Text, Bild=1:Zeile 28: Anweisung muss innerhalb einer on/onClipEvent-Prozedur vorliegen
var bgndover = false;

**Fehler** Symbol=MLeistungen, Ebene=Text, Bild=1:Zeile 29: Anweisung muss innerhalb einer on/onClipEvent-Prozedur vorliegen
var butover = false;

**Fehler** Symbol=MLeistungen, Ebene=Text, Bild=1:Zeile 31: Anweisung muss innerhalb einer on/onClipEvent-Prozedur vorliegen
bgnd.onRollOver = function() {

**Fehler** Symbol=MLeistungen, Ebene=Text, Bild=1:Zeile 34: Anweisung muss innerhalb einer on/onClipEvent-Prozedur vorliegen
bgnd.onRollOut = bgnd.onDragOut = function() {

**Fehler** Symbol=MLeistungen, Ebene=Text, Bild=1:Zeile 38: Anweisung muss innerhalb einer on/onClipEvent-Prozedur vorliegen
function slide(dy, s) {

Anzahl der ActionScript-Fehler: 14 Gemeldete Fehler: 14
 
1. Habe ich bestimmt nichts davon gesagt, dass Du den Button-Code im Menü einfügen sollst und 2. besagen diese Fehlermeldungen, dass Du den Code nicht in die Zeitleiste (wo er hingehört), sondern auf irgendeine Instanz gesetzt hast ...

Schau Dir bitte noch einmal an, wo ich in meiner Beispieldatei Code gesetzt habe, und versuch zu verstehen, aus welchem Grund. Wirf ggf. auch noch mal einen Blick in die Flashilfe.
Das ist leider genau der Grund, warum ich am Anfang gezögert habe, die Frage zu beantworten: So leid es mir tut das sagen zu müssen, aber bei Deinem Wissensstand kommt hier nicht mehr bei rum als Copy&Paste und Verständnisfehler, was im Endeffekt auf eine fertige Lösung von unserer Seite und 0 Lerneffekt auf Deiner Seite hinausläuft. :rolleyes:


Gruß
.
 
Oh sorry, ich hab ja auch den falschen Code kopiert. Ich hab ja beide Male den selben Code kopiert. Und ich habe definitiv eine extra Ebene, in der der Code liegt. Beine Buttons heissen nur im Menü nimmer Button sondern Text. Was vielleicht von meiner Seite dumm war so zu nennen.
Und die ganze Menüstruktur hab ich sicherlich besser verstanden als du denkst. Ob ich es jetzt selber so hinbekommen würde ist sicher ne andere Frage, aber gelernt hab ich sicher was. Nur mit der Fehlermeldung komme ich nicht so ganz zurecht.

Und nachdem was ich da gepostet hab mit dem falschen Coding, hätte ich an deiner Stelle auch gedacht "mann is der doof!".

Also, natürlich sehen die Buttons so aus:
Code:
this.useHandCursor = false;

this.onEnterFrame = function() {
	if (_caption != undefined) {
		btext.text = _caption;
		delete this.onEnterFrame;
	}
}

this.onRollOver = function() {
	fadeTo(-100, 5);
	_parent.butover = true;
}

this.onRollOut = this.onDragOut = function() {
	fadeTo(0, 7);
	_parent.butover = false;
}

this.onRelease = function() {
	_parent.pressed(this);
}

var cl = new Color(this);
var tr = cl.getTransform();

function fadeTo(d, s, _callback, _cbp) {
	this.onEnterFrame = function() {
		tr.rb += (d - tr.rb) / s;
		tr.gb = tr.bb = tr.rb;
		cl.setTransform(tr);
		if (Math.abs(d - tr.rb) < 1) {
			tr.rb = tr.gb = tr.bb = d;
			cl.setTransform(tr);
			delete this.onEnterFrame;
			_callback(_cbp);
		}
	}
}

Kannst du ein gutes Buch/ Bücher empfehlen, mit denen ich das besser lernen kann ohnen Euch/ Dich hier zu belästigen ;)
 

Neue Beiträge

Zurück