Fokusproblem?

ClaudiaGlade

Mitglied
Hallo,
ich habe folgendes Problem:
Ich habe eine Website gemacht wo es eine Projektseite gibt. Momentan funktioniert auch soweit alles gut. Nun möchte ich die Funktionalität erweitern. Den jetzigen stand könnt ihr unter http://www.stoiber.com/de/projects.html anschauen, beschreiben ist etwas kompliziert....
Die Seite ist so aufgebaut das es eine project.swf gibt die die Buttons und die "Leisten" enthält. Und (bisher) 25 Film.swf die jeweils aufgerufen werden wenn der entsprechende Button angeklickt wird. Jede Film.swf enthält als "Start" den großen Bild_Button, Play-Button und die Schrift. Anschließend werden in der Film.swf MC's nacheinander gestartet (Bild_scale->Film->Bild_scale_ende bzw Bild_scale_ende_blende) und am Schluß springt das dann alles wieder auf Anfang.
Soweit funktioniert ja auch alles.

Jetzt möchte ich aber das der "Film" rechts auch angezeigt wird wenn man mit der Maus nur drüber fährt (über den Button). Soweit auch noch kein Problem. Das hat aber zu folge das ich die Button auf unaktiv schalten muß sobald ein Button angeklickt wird. (Sonst kann man sich die Filme aus der Mitte ja nicht anschauen, da man ja immer an den anderen Buttons vorbei muß). Daraus ergibt sich das Problem das man ja irgendwann die Buttons auch wieder aktiv schalten muß. Das habe ich in der Film.swf gemacht. Und zwar wenn man über den Play/Bilder-Button kommt oder wenn der "Film" zuende ist (am Ende von Bild_scale_ende bzw Bild_scale_ende_blende).
Das funktioniert auch so weit. Allerdings kommt es jetzt zu meinem Problem: Wenn ich anschließend einen Button wieder anklicke werden die anderen Button nicht inaktiv. Ich muß erst über den Button fahren den ich vorher angeklickt habe. Und das ist nicht schön. Ich weiss aber nicht wie und wo ich das ändern muß....

Mein Code sieht wie folgt aus:

Projekt.swf:

AS allgemein:
Code:
//Leisten laden
for (var i:Number = 1; i<=12; i++) {
	_root.attachMovie("leiste_"+i, "leiste_"+i, i);
}

//Leisten unsichtbar (1Leiste sichtbar) schalten
_root.aus("leiste_1");

//1ten Film laden
this.createEmptyMovieClip("film_1",_root.getNextHighestDepth());
this.film_1.loadMovie("Filme_Scale_BMW1er_Final.swf");
film_1._lockroot = true;

// Funktion Leisten sichtbat/unsichtbar schalten
function aus(diesNicht:String) {
	for (var i:Number = 1; i<=12; i++) {
		if (_root["leiste_"+i]._name != diesNicht) {
			_root["leiste_"+i]._visible = false;
		}else{
			_root["leiste_"+i]._visible = true;
		}
	}
}

// Funktion Film sichtbar/unsichtbar schalten
function film_aus(diesNicht:String) {
	for (var i:Number = 1; i<=25; i++) {
		if (_root["film_"+i]._name != diesNicht) {
			_root["film_"+i]._visible = false;
		}
	}
}

// Funktion Button aktiv schalten
function button_an() {
	for (var i:Number = 1; i<=25; i++) {
			_root["button_"+i].enabled = true;
	}
}

// Funktion Button unaktiv schalten
function button_aus() {
	for (var i:Number = 1; i<=25; i++) {
			_root["button_"+i].enabled = false;
	}
}

AS auf den Buttons:
Code:
on (release){
	//Filme sichtbar/unsichtbar schalten
	_root.film_aus("film_1");
	
	//Film laden
	this.createEmptyMovieClip("film_1",_root.getNextHighestDepth());
	this.film_1.loadMovie("Film_1.swf");
	film_1._lockroot = true;
	
	//Button unaktiv schalten
	_root.button_aus();
	}
	
on(rollOver){
	//Leiste sichtbar/unsichtbar schalten
	_root.aus("leiste_1");
	
	//Button aktiv schalten
	_root.button_an();
	
	//Filme sichtbar/unsichtbar schalten
	_root.film_aus("film_1");
	
	//Film laden
	this.createEmptyMovieClip("film_1",_root.getNextHighestDepth());
	this.film_1.loadMovie("Film_1.swf");
	film_1._lockroot = true;
	}

Film.swf:

AS allgemein:
Code:
_parent.button_play.enabled=true;

// Funktion Button aktiv schalten
function button_an() {
	for (var i:Number = 1; i<=25; i++) {
			_level0["button_"+i].enabled = true;
	}
}

// Funktion Button unaktiv schalten
function button_aus() {
	for (var i:Number = 1; i<=25; i++) {
			_level0["button_"+i].enabled = false;
	}
}

AS auf dem Play/Bild-Button:
Code:
on (release) {
	_root.attachMovie("Flaeche_transparenz", "mc_flaeche", 100);
	_root.attachMovie("Bild_scal", "mc_bild", this.getNextHighestDepth());
	this.button_Film_klein._visible = false;
}

on (rollOver) {
	//Button aktiv schalten
	_root.button_an();
}

AS auf Bild_Scale (erstes Bild):
Code:
_parent.button_play.enabled=false;

//Button aktiv schalten
_root.button_aus();

AS auf Bild_Scale (letztes Bild):
Code:
stop();
_visible=false;
_root.attachMovie("film", "mc_film", 100);

AS auf Bild_Scale_ende bsw Bild_scale_ende_blende (letztes Bild):
Code:
stop();
_parent.button_Film_klein._visible=true;
_parent.button_play.enabled=true;
gotoAndPlay("Szene 1", 1);
_visible = false;

//Button aktiv schalten
_root.button_an();

[Die Button auf der projekt.swf heißen button_1 bis button_25.
Die Button auf der Film.swf heißen: button_Film_klein (Bild-Button) und button_play (Play-Button)]

Ich hoffe das meine Beschreibung soweit verständlich ist und ihr mir einen guten Tipp geben könnt...

Edit: Ich habe noch einen Teil der swf-Dateien angehägt, dann wird das Problem evlt. etwas klarer....
 

Anhänge

Zuletzt bearbeitet:
Hallo,

überleg dir gut, ob du diese rechten Inhalte auch wirklich onRollOver wechseln willst.
Wenn du nämlich dabei alle Buttons deaktivieren musst, und sie erst wieder aktivierst, wenn entweder der Inhalt angesehen wurde odereben über den Play-Button gefahren wird, schreibt das dem User einen extrem eingeschränkten Bedienungsablauf vor.
Wenn du also den rollOver wirklich machen willst, dann würd ich einfach beim ersten Klick auf einen Inhalt den rollOver wieder abschalten. Was dann auch nicht wirklich viel bringt irgendwie...

Gruss
 
Ich würde trotz alle dem gerne wissen wie man das beschriebene Problem lösen könnte... ich denk jetzt schon solange darüber nach, jetzt möchte ich auch das es mal funktioniert.... Ob ich das dann wirklich online stelle kann ich mir dann ja noch überlegen....
 
Gibt es irgendwie die Möglichkeit per AS den Button den rollOver-Befehl zugeben? So das ich am Ende des Bild-Scale-Ende(-Blende) MCs dem Button diesen Befehl geben kann?

Über einen Tipp oder eine andere Lösung wäre ich echt dankbar....
 
Zurück