Popupmenu bleibt offen

TheAwake

Grünschnabel
Hi erstmal,
Ich hab mir ein popupmenu gemacht, und das auch ganz wunderbar, nur ist es am unteren rand der SWF Datei und öffnet sich nach oben. Zwischen dem menu und dem unteren rand sind etwa 20 px platz.

Jetzt hab ich aber das problem, dass wenn man auf einen knopf drückt, und dann mit dem mauscursor das menu nach unten verlässt, (da der film in einem frame oben auf der seite steht) dass das menu dann so gut wie immer offen bleibt.

Ich glaube das liegt an dem geringen Abstand, d.h. dass flash dass nicht so ganz mitkricht...

Gibt es da ne möglichkeit das zu verhindern? Vielleicht irgendwas in den Platz zwischen Rand und Menu was alle menus schliesst wenn der cursor drüber fährt? Aber der mauscursor dürfte sich dann auch nicht verändern, also da dürfte dann keine hand draus werden...
 
Es kommt ganz darauf an, wie du überprüfst, ob ein RollOver noch stattfindet oder nicht. Wenn du nur einen Button hast, dem du ein RollOut Event gibst, dann kann es schon zu Aussetzern kommen.

Probier mal aus, dass ganze mit nem MC aus, den du überprüfen lässt.

PHP:
onClipEvent (enterFrame) {
	if (this.hitTest (_root._xmouse, _root._ymouse, true) == true) {
		trace ("RollOver");
	} else if (this.hitTest (_root._xmouse, _root._ymouse, true) == false) {
		trace ("RollOut");
	}
}
 
Zuletzt bearbeitet:
Uhm..ja vielen Dank...
Also, ich versteh was du meinst, nur jetzt ist mir noch n bissl unklar wie ich den trace überprüfen und dass dann zur Schliessung des Menus führen soll...

Jaja ich weiss ich hätt "erklährs auch für Dumme" dazuschreiben sollen...Aber sonst währ ich ja net hier ;-)
 
Als würde hier nur - du nennst es 'Dummen' - geholfen werden...

Erster Fall - Ohne Bewegung:
Du könntest die Zeile mit dem trace durch das ersetzen:

PHP:
_pfad.an.dein.menü._y = Position_in_Pixeln;

Das würde dein Menü auf die gewählte Position auf der Y-Achse verschieben.
Genauso machst du es halt dann bei dem RollOver, da soll es dann bloß nach oben gesetzt werden.

Zweiter Fall - Mit Bewegung:

Hierzu müsstest du für das Menü einen eignenen MC (MovieClip) machen, der dann ge'tweened' wird. Das heisst du lässt das Menü einmal nach oben, einmal nach unten fahren. Beispiel:

Menü ist am Anfang unten, also im ersten Frame des Tweens ein Stop.
Dann soll es hochfahren. Sagen wir, dass dauert 15 Frames. Also schiebst du per Tween den MovieClip bei Frame 15 ein paar Pixel nach oben. Weil das Menü ja dann oben bleiben soll, hier wieder ein Stop.
Um das Ganze dann wieder einfahren zu lassen, den Tween verlängern und bis Frame 30 wieder nach unten fahren lassen. Hier brauchen wir kein Stop mehr, weil wir ja bereits in Frame 1 eines haben.

Diesen 'Tween'-MC musst du nun auf die Bühne ziehen und ihm einen Instanznamen geben. Ich nehme hier mal 'menu'_tween' her.
Sobald du das gemacht hast, musst du das Script oben ein wenig umformen:

PHP:
onClipEvent (enterFrame) {
	if (this.hitTest (_root._xmouse, _root._ymouse, true) == true) {
		if (_root.menu._currentframe == 1) {
			_root.menu.play();
		}
	} else if (this.hitTest (_root._xmouse, _root._ymouse, true) == false) {
		if (_root.menu._currentframe == 15) {
			_root.menu.play();
		}
	}
}

Wir müssen jeweils noch eine Überprüfung des derzeitigen Frames machen, da er ja sonst immer den Tween abspielen würde.

Hoffe, das hilft dir und du hast es so ungefähr umrissen.

In dem Sinne,
gn8 ;)
 
Zurück