Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Äänen toistaminen ja alert

Macro [22.08.2009 19:42:44]

#

Morjensta taas!

Tällä kertaa pitäisi saada sellainen systeemi, että headissa olisi määritelty embed-ääni, ja sen jälkeen kutsuttaisiin alerttia. Nähtävästi käy niin, että alert tulee ennen ääntä, vaikka pitäisi olla toisinpäin.
Voisihan sinnen laittaa sen äänen toiston, ja sitten PHP:llä sleep(x), ja sitten alert, mutta en tiedä toimiiko tai onko järkevää.
Miten voisi järkevimmin tehdä?

Teuro [22.08.2009 21:24:24]

#

PHP:n sleep ei liene fiksua, koska PHP suoritetaan ennen kuin tuota embed ääntä kutsutaan. Itse ongelma voisi ratketa kutsumalla ääntä ennen alertia. Tai laita näkyville koodia, joka toimii mielestäsi väärin.

Macro [22.08.2009 22:07:30]

#

Teuro kirjoitti:

Itse ongelma voisi ratketa kutsumalla ääntä ennen alertia.

No, IE ei ainakaan näyttänyt toimivan:

<html>
<head>
<title>...</title>
<embed src="ääni.mp3" />
<script type="text/javascript">
alert("Tämä tulee ennen ääntä :(");
</script>
</head>
...

Teuro [22.08.2009 23:22:43]

#

Embed elementin tulisi olla body tagin jälkeen. Ainakin tämän lähteen mukaan.

Macro [23.08.2009 10:40:10]

#

Toimii se nähtävästi sielläkin, mutta silti alert tulee aina ensin.

Metabolix [23.08.2009 11:28:22]

#

Yritä ymmärtää, että HTML ei ole ohjelmointikieli eikä sillä ole aikajärjestystä. Ääni soi, kun se on saatu ladattua, ja skripti ajetaan, kun se on saatu ladattua.

Jos äänen kesto on tiedossa, voit yrittää kiertää asian sivun onload-tapahtumalla ja setTimeout-funktiolla.

function nayta_alert() {
  alert("XYZ");
}
var aanen_kesto = 1000 * 3; // 3 sekuntia
window.onload = function() {
  setTimeout(nayta_alert, aanen_kesto);
}

Silti on mahdollista, että esimerkiksi äänen soittaminen alkaa hieman myöhässä, kun pitääkin käynnistää ääniä soittava plugin.

Macro [23.08.2009 11:29:49]

#

Kiitos Metabolix. Nyt sain toimimaan, kun tein tuon :)

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta