Moviesteuerung leicht defekt

Ardaric

Erfahrenes Mitglied
Hallo, ich habe ein kleines Flashmenü, das aber nicht korrekt funktioniert.
Kurz: Wenn ich mit dem Mauszeiger den über den Textbutton rolle und solange der Zeiger dort bleibt, soll der Movieclip einfaden und dann bei Alpha:100 anhalten. Wenn ich mit dem Zeiger den Button verlasse, soll der Film von der Stelle wieder ausfaden bis Alpha:100. Allerdings fadet der immer in ein anderes Alpha ein und hört dann einfach auf. Hier ist die fla: *KLICK*

Danke im vorraus!!

Erklärung zur fla:
Ich habe vier Ebenen. Von unten nach oben: Hintergrund, TV Void, TV Q3A und Text

In der Text-Ebene befindet sich ein Textbutton.
In der TV Q3A-Ebene befindet sich ein Movieclip (Bildschirm mit Q3-Bild)
In der TV Void-Ebene befindet sich ein Bild (Bildschrim der flimmert)
In der Hintergrund-Ebene befindet sich ... der Hintergrund ;)

So, der Movieclip besteht aus 20 Frames und 2 Tweens. 1-10 (Alpha 0 -> 100) und 10-20 (Alpha 100 -> 0). Der Movieclip hat den Instanznamen MOV-Q3A. Und in Frame 1 und in Frame 10 liegt der Code: stop();

Der Textbutton beinhaltet folgenden Code:
Code:
on (rollOver) {
	MOV_Q3A.gotoAndPlay(2);
}

on (rollOut) {
	MOV_Q3A.gotoAndPlay(11);
}
 

Anhänge

Hi,

vielleicht solltest Du alle unnötigen Schlüsselbilder ausser dem ersten löschen bzw. ein stop() in den ersten Frame (Hauptzeitleiste) einfügen. Dadurch, dass der Film ständig loopt, werden Deine MovieClips immer wenn Du Frame 1 erreichst, wieder initialisiert...

Gruß
.
 
Ahaaa! :D Danke, jetzt funktioniert es. Allerdings gibt es jetzt eine Sache, da weiß ich nicht, wie ich es machen soll. Jetzt habe ich ja den Tween doppelt. Praktisch 0->100->0. Mit meinem Script läuft es so, dass das Bild bei einem rollOut von egal welchem Alpha-Wert sofort auf 100 springt und auf Alpha:0 fadet. Sieht aber unschön aus. Kann ich einen Film auch rückwärts laufen lassen von einem bestimmten Frame aus? Und kann ich abfragen, welchen Frame mein Movieclip gerade abspielt?

Habe es so probiert, aber so ist er entweder sichtbar oder nicht:

Code:
on (rollOver) {
	var i = 1;
	while (i < 11) {
		MOV_Q3A.nextFrame();
		i++;
	}
	
}

on (rollOut) {
	
	while (i > -1) {
		MOV_Q3A.prevFrame();
		i--;
	}
}
 
Hi,

ja, kannst Du, indem Du eine onEnterFrame-Methode in Kombination mit prevFrame() verwendest (such mal im Forum nach "Rückwärts").

Ich würde das in diesem Beispiel allerdings komplett ohne Tweening lösen (Angenommen, der abdeckende MC hat den Instanznamen "mask"):
Code:
mask._alpha = 100; // zuerst ist nichts zu sehen

button1.onPress = function() { // Bild anzeigen
    fadeTo(0);
}

button2.onPress = function() { // Bild verbergen
    fadeTo(100);
}

function fadeTo(d) {
    this.onEnterFrame = function() {
        mask._alpha += (d - mask._alpha) / 10;
        if (Math.abs(d - mask._alpha) < 1) {
            mask._alpha = d;
            delete this.onEnterFrame;
        }
    }
}

Gruß
.
 
Habe es jetzt anders gelöst. Dein Schema kapiere ich nicht :D, dann habe ich in den Tutorials etwas gefunden, dass aber nicht gut genug war. Es traten immer wieder Fehler auf.

Jetzt habe ich eine Lösung, die ist mehr als einfach!

Schaltfläche: button
Movieclip: meinClip

Das liegt auf meinClip:
Code:
onClipEvent (enterFrame) {
	if (forward) {
		nextFrame();
	} else {
		prevFrame();
	}
}

und das liegt auf button:
Code:
on(rollOver){
	meinClip.forward = true;
}
on(rollOut){
	meinClip.forward = false;
}
 
Achso, achsoooo :-( :D Ich meinte eher das mit der Maske. Bei der prevframe() dinges, wusste ich erst nicht was du meinst. Und danach hatte ich es dann eh schon ;)

Danke trotzdem!
 
Zurück