Embed javascript

Status
Niet open voor verdere reacties.

That Guy

Meubilair
Lid geworden
28 nov 2006
Berichten
5.010
Yo guys,

Voor de tile engine (http://vegras-studios.com/x/tile/) zit ik wat te proberen met muziek. Heel leuk en aardig, en bovendien werkt het nog, maar wel verschillend in verschillende browsers.

PHP:
//music.js
function playMusic(midiName) {

	var mp1 = document.getElementById('mediaplayer');

	//mp1.innerHTML = '';
	// ^ wel of niet maakt trouwens geen verschil.

	var vstyle = "height:10px; width:10px;";
	var vtype = "audio/midi";
	var vautorun = "true";
	var vmidi = v_MusicPath + midiName

	mp1.innerHTML = "<embed style='"+vstyle+"' type='"+vtype+"' src='"+vmidi+"' autostart='"+vautorun+"'></embed>";
}

Verder worden de muziekjes goed aangeroepen.

Hier de "fouten" per browser:

Opera (9.62) Na nieuwe map hoort een nieuw muziekje te komen maar gebeurt niet. *
IE 6 doet het perfect (:p)
IE7 doet het ook goed
Firefox (3.03) zet de 'focus' naar het embed na mapchange **
Chrome zet de 'focus' naar het embed bij start en na mapchange **
Safari (3.1.2) zelfde als Chrome (of eigenlijk andersom) **

*: Vermoed dat er iets met .innerHTML is.
**: met 'focus' bedoel ik niet het 'focus' event, heb dat al getest met een 'onfocus' in het embed. Wat er gebeurt is dat als je na de mapchange de pijltjes gebruikt, het de contols van het embed bestuurd. 'Enter' stopt/speelt het muziekje en de omhoog/naarbeneden pijltjes zetten het geluid harder/zachter.


Heeft iemand een idee waarom dit zo is en eventueel hoe het voorkomen kan worden? Wat eerst van plan flash te gebruiken voor de muziekjes, maar daar kon ik niet genoeg info over vinden/ben geen expert in flash (+ het heeft besturing met javascript nodig, schijnt te kunnen?!).


Alvast bedankt
:thumb:
 
Laatst bewerkt:
Je zou de focus terug kunnen zetten op het goede element na het veranderen van de muziek. Desnoods met een timeout, maar dat zal wel niet nodig zijn. Of misschien kun je de atributen van de embed aanpassen zonder innerHTML te veranderen, maar dat heb ik nog nooit geprobeerd. Het zit vast niet in de W3C standaard, maar dat is niet altijd erg.

Of je kunt ipv een embed de bgmusic van een iframe gebruiken. Maar dan heb je geen volume control enzo.

Met Opera valt eigenlijk niet te leven, snap niet dat het nog bestaat :[
 
Bedankt voor de reactie,

op het moment is er bij de embed nu de waarde 'false' toegekend aan de 'controller' (controller="false") maar het blijft hetzelfde... Vreemd.

Background sound zat ik ook aan te denken, maar werkt die in alle browsers? Geloof het niet.

Opera is inderdaad een &*# in dit soort dingen :p haha



Mischien ga ik toch nog even zoeken naar ee flash-element dat via javascript aangestuurd kan worden. Dat zal stukke beter werken denk ik... Iemand?

:thumb:
 
was het niet het "controls" en niet "controller"? Overigens denk ik niet dat het dan wel werkt, maar het zou kunnen. Alle grote browsers werken wel met achtergrond muziekjes geloof ik, maar een flash applicatie wordt practisch overal ondersteund. Je zult waarschijnlijk wel de muziek bestanden in de applicatie moeten bakken (tenzij er een Ajax achtig iets is voor flash?), maar dat kan ook wel. Ik ben geen flash expert, dus ik zou het niet weten :(
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan