MC als Fader mit ActionScript

luke_the_duke

Erfahrenes Mitglied
Hallo zusammen,

ich habe folgendes Problem:

Ich habe im Hauptmovie zwei verschiedene KeyFrames mit je einem dynamischen Textfeld (Instanzname: ausgabe) drauf. Auf beiden KeyFrames liegt zusätzlich ein ActionScript, dass via LoadVars-Object Daten aus einer PHP-Datei einliest und danach im Textfeld ausgibt.
Zwischen diesen Textfeldern kann man mittels zwei verschiedenen Buttons wechseln. Damit nun diese Textfelder inkl. ScrollBar (Komponente) weich ein- bzw. ausblenden, habe ich einen MC(Instanzname: fader) erstellt. Dieser MC enthält keine Grafiken sondern nur ActionScript. Von Frame 1- 11 definiert der MC den Alpha-Wert des _parent.Textfelds "ausgabe" inkl. ScrollBar von 100-0%. Auf dem 12. Frame des MC's liegt dann ein ActionScript, dass dem Hauptmovie den Befehl erteilt, zum jeweiligen Schlüsselbild zu wechseln und definiert dann den Alpha-Wert des Textfelds (dass ja immer gleich heisst) auf den Frames 13-20 wieder von 0-100%.
Die Buttons geben nicht direkt den gotoAndStop-Befehl, sondern aktivieren 1. den Fader-Clip und 2.definieren sie eine Variable für den MC, der dann auf Frame 12 den eigentlichen Wechsel zwischen den KeyFrames des Hauptfilms ausführt.

Die ActionScripts:

1. Die KeyFrames des Hauptfilms:

PHP:
stop();
Stage.scaleMode = "showAll";

lv = new LoadVars();
lv.sendAndLoad("read_news.php", lv, "POST");
lv.onLoad = function() {
	_root.ausgabe.text = this.news;
};

2. Die Buttons:

PHP:
on (release) {
	_global.ziel = "home";
	fader.play();
}


3.Das 12. Frame des MC's "fader":

PHP:
_parent.ausgabe._alpha = 0;
_parent.scrollo._alpha = 0;

_parent.gotoAndStop(ziel);

Nun das eigentliche Problem:

Ich möchte, dass der MC "fader" erst weiter abgespielt wird (also den neuen Text einblendet, wenn der Text der PHP-Datei komplett angekommen ist, damit der Betrachter des Films nicht noch den Scrollbalken rumspringen sieht. Soviel ich weiss macht man das mit dem texfield.onChange-Befehl, doch ich weiss nicht, wo ich den platzieren soll, damit das auch funktioniert.
Wenn ich den nämlich der onLoad-Funktion des LoadVars-Objekts beifüge und als Folge-Aktion den MC weiterspiele, geschieht gar nichts, dasselbe passiert, wenn ich diesen onChange-Befehl auf dem 12. Frame des MC's platziere.

Kann mir jemand helfen?

Gruss

Lukas
 
Also, habs jetzt war nur so überflogen, aber ich würde bei dem release vom Button das play wegmachen und dafür hier mit dazuschmeißen...


PHP:
stop(); 
Stage.scaleMode = "showAll"; 

lv = new LoadVars(); 
lv.sendAndLoad("read_news.php", lv, "POST"); 
lv.onLoad = function() { 
_root.ausgabe.text = this.news;
fader.play(); 
};

Dann wird erst weitergespielt wenn der Text geladen ist...

Hoffe, ich meinte das Richtige ^^
Greetz
 
Hallo und danke für die prompte Rückmeldung.

Ich habe deinen Vorschlag schon ausprobiert und dabei hats nicht richtig funktioniert. Der MC muss ja sozusagen zweimal den play-Befehl erhalten, der Ablauf, den ich mit einem Button-Click auslösen will ist folgender:

1. Klick Button
Spielt MC ab, Text fadet weg

2. MC hält in der Mitte an, gibt dem Hauptfilm das neue KeyFrame und

3. spielt weiter (fadet ein), wenn im Textfeld die Daten aus der PHP-Datei angezeigt werden.

War mir nur nicht sicher, ob das klar war.Ich poste vielleicht besser mal die *.fla, aber muss sie noch ein bisschen übersichtlicher gestalten, wenn da Experten drangehen.

Dank & Gruss

Lukas
 
Also hier meine*.fla-Datei.
Folgendes zum Test unter Flash:

1. Die PHP-Dateien werden fehlen!
2. Beim Testen mit Flash tritt keine Verzögerung des Ladevorgangs ein. Ich bemerkte diese Unschönheit erst beim Test über meinen localhost-Server, da ist der Fader sozusagen schneller als der Lade-Prozess.

In diesem Sinne viel Erfolg!

Gruss Luki
 

Anhänge

Zurück