Flash Button aktiviert lassen

Hi,

Code in den Buttons hat gesagt.:
Code:
_parent._parent.pressed(this);
Damit kommst Du (wegen den zwei "_parent") ja auf die Hauptzeitleiste und nicht auf den MC "MC_navigation", auf dem Dein Code steht. Ein _parent genügt, um auf die Zeitleiste zu kommen, auf der sich die Buttons befinden.

Gruß
.
 
Hallo,

habe das gerade geändert, allerdings funktioniert jetzt die Aktiv Funktion nicht mehr, der Button geht jedesmal wieder in den RollOver Zustand zurück. Außerdem hätte ich noch eine Frage: Wo hast Du die "obj" Variablen definiert?

DANKE!
 
Hi,

1. ist mein Fehler (hab den Code "freihand" gepostet). In dem Button-Array dürfen keine Anführungsstriche verwendet werden:
Code:
var buttons = new Array(button1, button2, button3); // Instanznamen deiner Buttons

2. Deine Buttons haben auch keinen richtigen "aktiv"-Zustand - vielmehr hast Du das erste Bild als "active" benannt, und das zweite (hell) als "out". Der richtige Zustand sähe so aus:
out: Button normal, erstes Schlüsselbild
over: Button rollOver, zweites Schlüsselbild
active: aktiver Zustand, drittes Schlüsselbild

Zudem hast Du noch die Reihenfolge der Frames bei onRollOver geändert. Es hatte schon seinen Sinn, dass ich geschrieben hatte:
Code:
this.onRollOver = function() {
    gotoAndStop((isactive)? "active" : "over");
}
(= wenn Aktiv, auf Aktiv bleiben, ansonsten auf "over" wechseln)

Gruß
.
 
Hi,

ich habe jetzt die drei Buttonzustände definiert (out, over und active, wobei over und active dieselben sind). Wenn ich auf den Button klicke öffnet sich allerdings keine URL und der aktiv Zustand bleibt auch nicht. Muss ich die Links in einem String definieren (innerhalb des Arrays), oder auch ohne Komma, wie bei den Buttons? Sobald ich die allerdings ohne Anführungszeichen schreibe, bekomme ich (logischerweise) eine Fehlermeldung, da ich durch das Springen zwischen Verzeichnissen ../ schreiben muss.
Stimmt es auch, daß ich hier
Code:
gotoAndStop((isactive)? "active" : "over");
auf die Schlüsselbilder in der Button Zeitleiste springe/n (soll)?

Hier nochmal der Code, wie er im FLA steht:
Code:
var buttons = new Array(button1, button2, button3, button4);
// Instanznamen Buttons
var targets = new Array("../frameset_internal/main.html", "../gen_oview.html", "../gen_cat.html", "../library.html");
// Linkziele
function pressed(obj) {
	for (var i in buttons) {
		if (button[i] != obj) {
			obj.deActivate();
		} else {
			getURL(targets[i], "contentFrame", "POST");
		}
	}
}
stop();
und
Code:
// Code auf Button-Zeitleiste:

if (isactive == undefined) {
    var isactive = false;
}

this.onRollOver = function() {
    gotoAndStop((isactive)? "active" : "over");
}

this.onRollOut = this.onReleaseOutside = function() {
    gotoAndStop((isactive)? "active" : "out");
}

this.onPress = function() {
    gotoAndStop((isactive)? "active" : "down");
}

this.onRelease = function() {
    if (!isactive) {
        activate();
        _parent.pressed(this);
    }
}

function activate() {
    gotoAndStop("active");
    isactive = true;
}

function deActivate() {
    gotoAndStop("out");
    isactive = false;
}

Die Buttons haben jetzt jeweils drei Keyframes, wie von Dir zuvor beschrieben: 1.out, 2. over, 3.active.

Weisst Du woran es noch liegen kann, daß es nicht funktioniert? Danke!
 
... poste dann bitte noch einmal Deine aktuelle Datei. Es ist mir zu unsicher, Deinen beschriebenen Status von Hand in die vorletzte Version einzupflegen.
.
 
Hi,

... sogar gut möglich, dass der Fehler bei meiner Seite liegt. ;) Der Code in der Funktion "pressed" muss so aussehen:
Code:
function pressed(obj) {
	for (var i in buttons) {
		if (buttons[i] != obj) {
			buttons[i].deActivate();
		} else {
			getURL(targets[i], "contentFrame", "POST");
		}
	}
}

Gruß
.
 

Neue Beiträge

Zurück