Ton und Bild zeitgleich ?

daniel44

Grünschnabel
Hallo,

ich bin am Grübeln, wie ich folgendes Problem lösen kann. Für eine Glaserei-Website habe ich mir ein JS-Intro ausgedacht, in dem zunächst eine graue Fläche (als Glasscheibe) zu sehen ist. Nach 4 sec soll ein Klirrgeräusch einen geworfenen Stein vortäuschen und zeitgleich soll das Bild der unzerstörten Glasscheibe mit einer zerplitterten Glasscheibe wechseln. 1 sec danach steht dann der Schriftzug: Willkommen bei der Glaserei ...

Es funktioniert auch alles, bis auf die Synchronität von Knall (wav-Datei) und Bildwechsel.

Hier das Script:

//Preload der Bilder
var pre_images=
["images/zersplitGlas0.jpg",
"images/zersplitGlas1.jpg",
"images/schrift.gif"];


var load_nxt = 500;
var pos_array = 0;

function pre()
{
var new_img = new Image();
new_img.src = pre_images[pos_array];

pos_array++;
if(pos_array < pre_images.length)
{setTimeout('pre()', load_nxt)}

}

function start()
{
document.getElementById("glas").innerHTML = "<embed src='sounds/glas.wav' loop=false autostart=true hidden=true><\/embed>";
document.getElementById("title1").style.visibility="visible";
document.getElementById("title0").style.visibility="hidden";
}

function scheibe()
{
setTimeout('start()',4000);
setTimeout('document.getElementById("title2").style.visibility="visible"',5000);
}

Im Body-Tag steht dann folgendes:

<body onload="javascript:pre(); javascript:scheibe()" bgcolor="#C8E8D0">


Kann mir jemand helfen, wie ich das auf die Reihe bekomme?

Einen guten Rutsch ins Neue Jahr und ein paar gute Ideen

wünscht

Daniel44
 
Zuletzt bearbeitet:
Das Problem ist, dass die wav-Datei erst geladen werden muss.... daher die Verzögerung.

Es gäbe zwar einen Workaround, aber ich würde dir unbedingt raten, das lieber mit Flash zu machen.... du erreichst damit mehr Leute, und hast keinerlei Problem mit der Synchronität.
 
Könnte online vielleicht daran liegen, dass die Sound-Datei noch nicht fertiggeladen ist, wenn ihr Einsatz gefordert ist, offline sollte das aber klappen.
Wie ungenau ist die Synchronisation denn?

Noch 2 andere Anmerkungen vorerst:

1)
In deinem onload-Event-Handler benötigt du kein javascript:-Pseudoprotokoll, der erwartet nämlich eigentlich von sich aus nur JavaScript-Anweisungen.

2)
Ich bin nicht auf dem aktuellen Stand der Dinge, aber war der embed-Tag nicht nur für die Netscape-Browservarianten interpretierbar, der IE hingegen wollte einen object-Tag oder sowas?
So habe ich's in schwacher Erinnerung, kann mich auch täuschen, wie gesagt.

Gleichfalls einen sauberen Rutsch wünschend,
Adam
 
Danke für die Antwort. Ich werde wohl tatsächlich zu Flash übergehen. Kann man eigentlich eine wav-Datei so wie ein Bild schon vorher laden? Dann köönte man ja auch noch mal auf diese Weise das Problem angehen.
 
Ich kenne keine Lösung dafür, so eine maßgeschneiderte Variante wie mit Bildpreloader gibt es jedenfalls nicht mit Soundobjekten.

Aber mit Flash ist dann wiederum das alles kein Problem. :)
 
Die Lösung wäre, den Sound erstamal einzubinden, aber erst bei Bedarf abzuspielen.... dann befände sich der Sound bei Bedarf bereits im Cache....
 

Neue Beiträge

Zurück