Probleme mit aktiver Button und MC nacheinander Abspielen !

marcelmaurice

Grünschnabel
Hallo Miteinander

Habe immer noch folgendes Problem, benutze Flash MX und habe unter dem Link die Datei Test.zip angehängt. :)

"Test.zip "

Ich möchte in meinem Flash Film, welches aus mehreren MC und einer Navi besteht, folgendes erstellen: Wenn man auf die Seite kommt wird mc_intro gespielt. Wenn man nun auf ein Button, btn1, btn2, ...usw drückt muss per AS erst festgesellt werden welcher MC offen ist, das der MC nicht nochmal gespielt wird, wenn das nicht der Fall ist, also was anderes gespielt werden kann, will ich das das Aktuelle MC entweder zurück gespielt wird, also rückwärts, eine Fade Out MC oder wie im Beispiel der Fall, im mc_intro ab Frame 22 und dann der Neue MC. Hört sich kompliziert an, ich weiss!
Hab da schon mal mit was angefangen und hoffe ich bin auf dem richtigen Weg!
So ganz find ich aber nicht heraus wie am besten zu lösen ist, ob alles in einen MC oder doch mehrere?Hoffe Ihr könnt mir Irgendwelche Tips geben. Gibt da sicher viele Möglichkeiten.. :rolleyes:

PS: AS in der Test Datei Funktioniert nicht :(

Also ich bedanke mich schon mal im Vornerein und allen noch einen schöne Pfingstmontag...

Gruss Maurice
 
Hallo,

also so wie ich das verstanden habe, möchtest du, dass beim Aufruf eines neuen Menüpunktes das bereits offene Menü zuerst geschlossen, zurückgespielt usw. wird und dann das neue aktiviert wird. Ich schlage mal folgende Variante vor:

AS auf erstem Keyframe:

PHP:
_root.mc_intro._visible = true;
_root.mc_news._visible = false;

_root.prevMenu;

function activateMenu(targetMC) {
	if (this.prevMenu != targetMC) {
		_root.prevMenu//Deine Anweisungen
		targetMC//Deine Anweisungen
		_root.prevMenu = targetMC;
	}
}

btn1.onPress = function() {
	activateMenu(_root.mc_intro);
};

btn2.onPress = function() {
	activateMenu(_root.mc_news);
};

Die Bedingung zu Beginn der Funktion stellt sicher, dass nicht zweimal derselbe Menüpunkt aktiviert werden kann. In der Funktion kannst du nun dem vorhergehenden MenüMC per _root.prevMenu Anweisungen geben, analog dazu verhält es sich mit targetMC und dem zu aktivierenden MC.

Gruss
 
Hallo

Danke erstmal für die schnelle Hilfe.

Hab den Code mal gelesen und versucht einzubauen, habe da noch ein paar Fragen, wenn das nich zuviel des Guten ist :rolleyes: ?

So wie ich das verstehe nimmst du an die Buttons werden nacheinander gedrückt, oder habe ich das falsch intepretiert? Denn mit dem Code prevMenu weiss ich nicht genau was damit anfangen? Wird den einfach gespeichert betreffende dem Aktiven Button, oder kann man dann nicht mehr auf den selben Knopf?
Es ist mehr eine Webpage, aber ich denke das habe ich wohl ein wenig umständliche erklärt oder verstanden.

Werde daran herumprobieren aber wäre für jeden weiteren Input dankbar :)

Gruss Maurice
 
Hallo,

nein, Fragen ist nie zuviel des Guten, sondern bei Nichtverstehen Pflicht, sonst hätt ich nicht geantwortet.

Ich habe angenommen, dass die Navi für eine Website ist. Ich bin auch davon ausgegangen, dass die Buttons nacheinander und nicht gleichzeitig gedrückt werden :) , aber immer wieder gedrückt werden können..

In der Variable _root.prevMenu wird jeweils der ausgewählte MC gespeichert, sobald dieser aktiviert wurde, weil beim Drücken des nächsten Buttons dieser MC ja quasi der "alte" ist und entfernt, ausgefadet usw. wird.

Ich schildere hier mal einen hypothetischen Bedienablauf der Navi.
Die SItuation:
Der MC _root.mc_news ist offen, die Variable _root.prevMenu bezieht sich auf eben diesen MC.

Der Client drückt nun den Button 2, der z.B. das Gästebuch aufrufen soll. Folgendes geschieht nun:

1. Der Button ruft die Funktion activateMenu auf, übergibt ihr als Parameter den MC _root.mc_guestbook.

2. Die Funktion überprüft nun die Variable _root.prevMenu. Sollte der Inhalt der Variable dem des Parameters entsprechen, passiert gar nichts. Das ist nun aber nicht der Fall, der Parameter ist ja gleich _root.mc_guestbook und die Variable gleich _root.mc_news.

3. Mit der Variable _root.prevMenu gibst du dem alten, zu entfernenden MC die Anweisung zu verschwinden, was auch immer das heisst. Das kann den Aufruf einer Funktion bedeuten, eine gotoAndPlay-Anweisung usw.

4. Mit dem Parameter targetMC, der in diesem Fall dem MC _root.mc_guestbook entspricht, gibst du dem neuen MC die Anweisung, zu erscheinen,

5. Zum Schluss wird die Variable _root.prevMenu aktualisiert, d.h. man speichert nun _root.mc_guestbook in die Variable, damit beim nächsten Button-Klick dieser MC als "alter" MC interpretiert wird.


Nun siehst du auch den Sinn der if-Bedingung: Wenn der MC z.B. _root.mc_guestbook offen ist und der Client erneut auf den Button für das Gästebuch klickt, sind _root.prevMenu und targetMC gleich und es passiert nichts, was ja auch logisch ist. Andernfalls würde der MC _root.mc_news erst verschwinden, um gleich wieder zu erscheinen.

Ich hoffe, ich konnte dir helfen.

Gruss

EDIT:

AS funktioniert perfekt ;)
 
Zuletzt bearbeitet:
Hallo,

Supper! Danke vielmal! :) :) :)

Ich weiss eine solche erklärung wirklich zu schätzen, ist wenn man es so sieht, wirklich verständlich....!

Denke ich habe soeben en RIESEN Haufen AS dazugelernt... Nochmals Danke vielmal.

Grüsse Maurice
 
Hallo lue_the_duke

Ich bin es nochmals. :rolleyes:

Hab da noch ein kleines Problem betreffend dem Script. Hab jetzt die ganze Sache zusammengebaut und habe festgestellt das betreffend den Abläufen noch was geändert werden muss. :)

Wie schaff ich es das die MC nicht gleichzeitig sondern schön eins nach dem Anderen ablaufen? Ist wegen der Optik extrem wichtig. Denke mit einer Zeit Verzögerung wäre das nicht so toll eher was im Letzten Frame des 1ten MC das dann irgend ein Befehl auslösst.

Also Danke nochmals in Voraus und schönen Abend. :p

Gruss Maurice
 
Zurück