Flashbutton + Aftereffects

ok, klappt alles bis auf eine Kleinigkeit noch. Wenn der Button aktiv ist, soll er es auch bleiben. Beim MouseOver soll NICHT wieder der MouseOver MC abgespielt werden.

Lösung ?
 
Hallo,

das kannst du doch genau gleich wie bei deinem rollOut etc. handeln:

Code:
this.onRollOver = function() {
    if (!isactive) gotoAndStop(2);
}

gruss
 
ok, jetzt funktioniert es. Eine letzte Kleinigkeit gibts da aber immer noch. Wie bringe ich dem Button bei, die "AktivAnimation" zu beenden, wenn ein anderer Button ANGEKLICKT wird ?

PHP:
function deActivate() {
    isactive = false;
    gotoAndStop(1);  // Frame 1 ist der Ruhezustand des Buttons
}
 
Hallo,

da gibt es einen relativ einfachen Trick. Anstatt die Variable "isactive" als Boolschen Wert (true oder false) zu behandeln, speicherst du darin eine Referenz auf den Button selbst. Ausserdem speicherst du die Variable nicht als Member des Buttons sondern eine Ebene höher, also auf der Zeitleiste, auf der sich der Button befindet:

Code:
this.onRelease = function() {
    this._parent.isactive = this;
    gotoAndPlay("active_ani");
}

Dementsprechend musst du natürlich die Bedingungen aller Maus-Events umbauen. Anstatt auf true oder false abzufragen, überprüfen wir nun, ob isactive eine Referenz des Buttons ist:

Code:
this.onRollOver = function() {
    if (this._parent.isactive != this) gotoAndStop(2);
}

this.onRollOut = this.onReleaseOutside = function() {
    if (this._parent.isactive != this) gotoAndStop(3);
}

Nun weist du dem onRelease noch zwei Anweisungen zu:

1. Die alte Referenz von isactive wird deaktiviert.
2. Der aktuelle Button ist die neue Referenz in isactive

Code:
this.onRelease = function() {
	if (this._parent.isactive != this) { 
		this._parent.isactive.deActivate();
		this._parent.isactive = this;
		gotoAndStop(4);
	}
}

In der der Funktion "deActivate" brauchst du nunmehr nur noch optische Anweisungen zu tätigen:

Code:
function deActivate() {
    gotoAndStop(5);
}

gruss
 
Hallo,

dort wo du Tobis Skript platziert hattest, auf dem 1. Frame jedes Buttons, der zur Navi gehört. Beim ersten Button lag auf Frame 3 ausserdem noch eine neue onRollOut-Definition, die ich weglassen würde. Hier nochmals das Skript im Zusammenhang:

Code:
this.useHandCursor = false;


this.onRollOver = function() {
    if (this._parent.active != this) gotoAndStop(2);
}

this.onRollOut = this.onReleaseOutside = function() {
    if (this._parent.active != this) gotoAndStop(3);
}

this.onRelease = function() {
	if (this._parent.active != this) {
		this._parent.active.deActivate();
		this._parent.active = this;
		gotoAndStop(4);
	}
}

function deActivate() {
    gotoAndStop(5);
}

stop();

gruss
 
ja ich werd bekloppt, funktioniert jetzt alles wunderbar. Son Button kann doch ganz schön kompliziert sein......für einen Anfänger ;-)
 

Neue Beiträge

Zurück