Textwechsel

Veränderung

Erfahrenes Mitglied
Zu einem Lied möchte ich animierten Songtext anzeigen, wo also der Text immer wechselt.
Muss ich dafür das Schlüsselbild kopieren und hintereinander haben?! Habe da im Moment nicht wirklich eine Ahnung von der Vorgehensweise.

Danke im Vorraus für jede Antwort
 
Sowas ist auf jeden Fall extrem schwierig in Flash.
Theoretisch kannst du bequem den (vorher importieren ) Sound aus der Bibliothek
auf eine Zeitleiste ziehen und dann an der entsprechenden Stelle deine Animation
hinzufügen ( auf eine weitere Ebene ).

Praktisch klappt das allerdings rein gar nicht,
da die wirkliche Framerate von Prozessor, Betriebssystem, Speicher, Grafikarte, im
Browser oder nicht, mit Html oder direkt, und einigen weiteren Faktoren, abhängt.
Das bedeutet das jeder Rechner die Animation an einer (zeitlich) anderen Stelle zeigen
würde. Ein schneller zu früh und ein lahmer Mac viel zu spät.

Unabhängig davon, dass du das ganze animieren willst,
würde ich sowas nur mit Millisekundenbasierten Actionskript realisieren.
Den Sound würde ich dynamisch laden:
PHP:
 s = new Sound;
s.loadSound("datei.mp3");
s.start();
Und dann jede menge setIntervals.
Das folgende Skript gibt nach einer Sekunde ( 1000ms ) den Satz "Tach auch." aus:
PHP:
IV = setInterval ( this, "trace_tach", 1000)
function trace_tach()
{
     clearInterval ( IV )
     trace ( "Tach auch.")
}
Ein SetInterval speichert man immer in einer Variabel ( IV = setInterval... ),
welche die Aufgerufene Funktion auch wieder löschen sollte ( clearInterval ),
ansonsten hast du alle 1000ms ein "Tach auch.".
Der 1. Paramter von SetInterval ist der Pfad wo die Funktion liegt, der zweite der Funktionsname als String, und der dritte die Millisekunden, jeder optionale weitere ist dann für die Funktion die du Aufrufst.

Letztendlich müsste man durch mehrfaches Ausprobieren rausfinden wann nach wieviel Millisekunden welcher Text kommt.
Und dann für jeden Text einen SetInterval-Aufruf mit der entsprechenden Zeit haben.
Das würde dann in etwa sicherlich so aussehen, nur einige Zeilen mehr:
PHP:
//angenommen man hat ein textfeld mit der variabel "ausgabe" wo der text erscheinen soll
function schreib_text ( text, interVal_ID )
{
     clearInterval ( this["ST" + interVal_ID] )
     ausgabe = text
}
ST0 = setInterval ( this, "schreib_text", 823, "LaLalalalaaaaa", 0 )
ST1 = setInterval ( this, "schreib_text", 1506, "Lululuuuuhhh", 1 )
ST2 = setInterval ( this, "schreib_text", 1865, "ooooo o oo ", 2 )
ST3 = setInterval ( this, "schreib_text", 2265, "LaLalalalaaaaa", 3 )
ST4 = setInterval ( this, "schreib_text", 3565, "LaLalalaaaaa", 4 )
....
.....
Hoffe das hat ein bißchen geholfen und nicht zuviel verwirrt.
 
Hi,

meines Wissens ist das genau umgekehrt: Flash synchronisiert Animation und Sound dann (und nur dann), wenn Du einen Sound in einem Schlüsselbild verwendest und die Synchronisierungsoption "Stream" verwendest:
Aus der Flashhilfe:
Stream synchronisiert den Sound für die Wiedergabe auf einer Website. Hierbei wird der Ablauf der Animation an den Streaming-Sound angepasst. Wenn Flash nicht in der Lage ist, die Bilder der Animation schnell genug anzuzeigen, werden einzelne Bilder übersprungen. Im Gegensatz zu Ereignis-Sounds werden Streaming-Sounds angehalten, wenn der Benutzer die SWF-Dateiwiedergabe abbricht. Außerdem wird ein Streaming-Sound stets nur so lange wiedergegeben wie die ihm zugeordneten Bilder. Streaming-Sounds werden beim Abspielen der veröffentlichten SWF-Datei gemischt.

Gruß
.
 
Ich habe ehrlich gesagt noch nie etwas mit dem Streaming Sound im Schlüsselbild gemacht.
Liest sich ja vernünftig an, sollte man wohl vorher mal ausprobieren bevor man in SetIntervals erstickt ; )
Bei mir war es erfahrungsgemäß immer so, dass man genaue Abläufe nur per AS hinkriegt, aber da lasse ich mich gerne eines besseren belehren.
Werde ich bei Gelegenheit mal testen wie sich Flash dann verhält wenn er Animationen darstellen soll, die der Prozessor nicht synchron bewerkstelligen kann. Das mit "...werden einzelne Bilder übersprungen" hört sich ja gut an.
 
Zurück