button animation bei rollover stoppen?

hyperboo

Grünschnabel
Hi,

ich (flash mx) habe mal wieder ein problem. ich habe 3 buttons, die gleichzeitig in regelmäßigen abständen animiert werden. beim rollover über einen button, bleibt natürlich auf diesem button die animation stehen... die zwei anderen laufen normal weiter. dadurch verschiebt sich natürlich alles. dh... die zwei anderen buttons werden animiert, der eine button erst später. aber nicht gleichzeitig mit den anderen, wie er es sollte.

wie kriege ich es hin, dass die anderen 2 buttons beim rollover über einen button stoppen, und beim rollout wieder weitergehen?

ps: die buttons heißen b1, b2, b3 und die movieclips im "Up" modus mc1, mc2, mc3
 
Hi,

verwende MovieClips und keine Schaltflächen als Buttons. Auf MovieClips in Schaltflächen kannst Du nicht über ihren Instanznamen zugreifen (ein weiterer Grund, warum ich es nie empfehle, Schaltflächen zu verwenden).

Wenn Du MovieClip verwendest, kannst Du eine Funktion schreiben, die die Animationen in allen Buttons anhält bzw. wieder abspielt:
PHP:
var button_anzahl = 3; // Anzahl der Buttons

function stopAll() {
	for (var i=1; i<=button_anzahl; i++) {
		this["but" + i].mc.stop();
	}
}

function playAll() {
	for (var i=1; i<=button_anzahl; i++) {
		this["but" + i].mc.play();
	}
}
Benenne die MovieClips in den einzelnen Buttons einfach alle "mc" - es stiftet nur Verwirrung, wenn Du die auch noch einmal numerierst (mc1, mc2 ...)

Die Buttons haben in meinem Beispiel die Instanznamen "but1", "but2" usw. Beim rollOver auf einem Button rufst Du einfach die Funktion playAll auf, und beim rollOut stopAll. Beachte, dass Du - wenn Du MovieClips verwendest - die Funktionen mit einem _parent bzw. _root adressieren musst:
PHP:
on(rollOver) {
    _parent.stopAll();
}

on(rollOut, releaseOutside) {
    _parent.playAll();
}

Gruß
.
 
danke dir =)... leider habe ich in den buttons schon total viele animationen etc. reingemacht. gibt es eine möglichkeit aus den buttons movieclips zu machen, ohne dass sie ihre funktionen und zustände verlieren?
 
Ja, das kannst Du in den Eigenschaften der Symbole in der Bibliothek ändern.

Was dabei verloren geht:

- Code, der sich auf schon vorhandenen Instanzen der Buttons befindet, z.B. on(release) {....

- Die Zustände für rollOver, pressed usw. werden einfach in Schlüsselbilder umgewandelt. Für das Verhalten bei Mausereignissen musst Du selbst sorgen, das ist aber nicht weiter kompliziert:
PHP:
this.onRollOver = function() {
    gotoAndStop(2);
}

this.onRollOut = this.onReleaseOutside = function() {
    gotoAndStop(1);
}

this.onPress = function() {
    gotoAndStop(3);
}
Dieser Code im ersten Schlüsselbild eines MovieClips mit 3 Frames macht genau das selbe wie eine Schaltfläche mit den Zuständen Out, Over und Pressed. ;)

Gruß
.
 
dankeeeeeeeeeeeeeeee.... es klappt einwandfrei. du bist so toll =)

aber noch eine letzte frage. kann ich auch den "Aktiv" bereich auf diese art und weise festlegen?

__________

ok, hat sich erledigt. ich habe es selbst rausgefunden^^....
 
Zuletzt bearbeitet:
Zurück