Mouse events

selle1

Erfahrenes Mitglied
Hallo zusammen,

ich habe einen MC, der per Mc (Button) in einen Container geladen wird. Nach abspielen des MCs soll bei Rollover des gleichen Buttons eine kleine Animation ablaufen. Bei Klick auf diesen wieder die Animation des eingeladenen MCs. Ist das überhaupt möglich oder muss man da anders herangehen? Habe schon mit Marken versucht, klappt aber nicht so recht.

Kann mir jemand Tips geben?
 
Hallo,

ich bin mir nicht sicher, ob ich das kapiert hab. Ich glaubte zu verstehen, dass du mit einem einzigen Button nacheinander drei verschiedene Aktionen ausführen willst. Dafür müsstest du verschiedene Stati einführen, z.B. Status 1 steht für das Laden und Abspielen des MovieClips, Status zwei steht für die Animation usw.
Ein simples Beispiel:

Code:
var s = 1;

function checkStatus () {
	switch (s) {
		
		case 1:
			//MovieClip laden und abspielen
			s++;
			break;
		
		case 2:
			//Animation abspielen.
			s++;
			break;
			
		case 3:
			//MovieClip erneut abspielen
			s = 1;
			break;
	}
}

meinButton.onRelease = function () {
	this._parent.checkStatus();
}


gruss
 
Hi,

mir ist nicht ganz klar, was dort in welcher Reihenfolge passieren soll, aber wenn ich davon ausgehe, dass ein Button abwechselnd zwei verschiedene Aktionen ausführen soll, könntest Du eine Hilfsvariable einsetzen:
Code:
var variante = 0;

button.onPress = function() {
  if (variante == 0) {
    spielWasAb();
    variante = 1;
  } else {
    spielWasAnderesAb();
    variante = 0;
  }
}
Damit wird bei jedem Klick eine der beiden Funktionen (abwechselnd) ausgeführt.

Gruß

EDIT: Arrgh! ^^ (lukes Variante ist natürlich eleganter)
.
 
Mann ihr Wahnsinnigen
Ihr habt mein Vorhaben vollkommen richtig interpretiert.
Werde eure Vorschläge mal versuchen umzusetzen. Danke für eure Antworten. Melde mich später noch einmal.
 
Hallo nochmal,

die erste Variante habe ich soweit umgesetzt und sie funktioniert auch bei der loadmovie Funktion. Nur bei dem anschließenden rollover tut sich nichts. Der MC der reingeladen wird enthält eine Marke "abc", die mit dem rollover abgespielt werden soll. Code auf der Zeitleiste wie folgt:
Code:
var s = 1;
function checkStatus() {
	switch (s) {
	case 1 :
		mc_prod.onRelease = function() {
			kontakt._visible = false;
			_root.empty.loadMovie("produkte.swf");
		};
		//MovieClip laden und abspielen
		s++;
		break;
	case 2 :
		mc_prod.onRollOver = function() {
			_root.empty.gotoAndPlay("prod_liste");
		};
		//Animation abspielen.
		s++;
		break;
	case 3 :
		//MovieClip erneut abspielen
		s = 1;
		break;
	}
}
mc_prod.onRelease = function() {
	this._parent.checkStatus();
};

Was mache ich falsch?:confused:
 
Zuletzt bearbeitet von einem Moderator:
Hallo,

die Anweisungen werden soweit ich das beurteilen kann, richtig zugeordnet. Könntest du vielleicht mal die *.fla deines externen MovieClips posten?


gruss
 
Code:
case 1 :
		mc_prod.onRelease = function() {
			kontakt._visible = false;
			_root.empty.loadMovie("produkte.swf");
		};
Hiermit überschreibst Du den ersten Handler, der die Funktion "checkStatus" aufruft wieder. Da der Klick an dieser Stelle schon bearbeitet wird, brauchst Du hier auch kein weiteres "onRelease".

Gruß
.
 
Hiermit überschreibst Du den ersten Handler, der die Funktion "checkStatus" aufruft wieder. Da der Klick an dieser Stelle schon bearbeitet wird, brauchst Du hier auch kein weiteres "onRelease".

Gruß
.

OK, aber was schreibe ich stattdessen. Die function klappt ohne on irgendwas ja nicht mehr, oder bin ich jetzt total verwirrt?
 
Zurück