Saluti a tutti...
in risposta a cavicchiandrea (che intanto ringrazio dell'interessamento e dei consigli):
-escludo flash (nessun pregiudizio, ma la mia ipotesi era un esperimento in js+css, per cui vale come tale...);
-i plugin credo siano un problema relativo... chi non può playare un .wav?! e comunque, come dici tu, si può ottimizzare con .mp3 o midi e co.: nella mia ipotesi la questione era messa da parte a vantaggio delle altre...
-credo che per l'esperimento della fattoria il sistema proposto da Mega69 (che torno a ringraziare) per fare una sola chiamata sia efficiente... non devo attendere l'<embed di tutti i suoni e se invece di onMouseOver faccio onClick quel piccolo ritardo al richiamo di ogni .wav (ma sono d'accordo riguardo l'impiego dei midi) non è brutto: mentre guardi la .png della pecorella che in :hover si volta e apre la bocca... senti il suo verso...
Avrei trasformato la tua proposta di una sola chiamata da così:
codice:
function suona(nomefile) {
//box è un div vuoto
document.getElementById("box").innerHTML = "<embed autoplay='true' src='" + nomefile + "' />";
}
a così (come ti sembra? tu/voi siete molto più competenti):
codice:
<script type="text/javascript">
function DHTMLSound(mysound) {
document.getElementById("box").innerHTML=
"<embed src='"+mysound+"' hidden=true autostart=true loop=false>";
}
</script>
</head>
<body>
digital
<span id=box></span>
::::::::::::
Mettendo però da parte la fattoria (che è venuta fuori per ipotesi) e tornando al problema originario...
che era, lo ricordo, il fatto che con l'embed di tanti suoni avevo un ritardo nel caricamento della pagina...
1. intanto, noto che il tempo di caricamento della pagina non dipende dal peso in kb dei file sonori, ma dal numero di <embed che faccio (se faccio embeddare il nulla, cioè file che non esistono, il tempo di caricamento non muta... se faccio <embed di soli 2/3 file allora ottengo risposte in tempi quasi impercettibili)...
è normale? che cose se ne sa?
2. poi, SOPRATUTTO, il fatto è che a me piaceva l'idea di avere risposte sonore ISTANTANEE al passaggio del mouse... e ciò lo posso ottenere solo se faccio <embed dei file sonori... devo però sorbirmi il caricamneto lento della roba di cui è composta la mia pagina...
Ecco un esempio che ho implementato su una copia della mia home page:
esempio a RISPOSTA ISTANTANEA
(come si può vedere le risposte sonore sono istantanee, però bisogna attendere il caricamento di tutti gli <embed...)
In alternativa bisogna fare con la soluzione di Mega69 ottenendo questa versione:
a Esempio a RISPOSTA RITARDATA...
(questa volta il caricamento è bello rapido, ma il sonoro lo ottengo dopo un attimo...)
Avevo perciò pensato di ovviare al problema:
-richiamando onMouseOver da altra pagina già caricata, ad esempio in un iframe (come supponeva Mega69), ma non ci sono riuscito...
-in un popunder (ma è una soluzione sporchissima e poi mi viene bloccata!!
)
-oppure provando a dare la simulazione in js di una splash page fino a che non ottengo l'intero caricamento della pagina, con questo scriptino...
ma non cambia molto, perché il tempo di attesa rimane sempre quello... a meno che non metta come spash page una versione leggera della mia pagina che poi quando è pronta va a sostituirglisi...
Ok!!! ho scelto di seguire questa direzione, ma con una SOLUZIONE DIFFERENTE...
questa:
codice:
<body onload="document.getElementById('attendendo_che_si_carichi').style.display='none';document.getElementById('ormai_caricato').style.display='block'">
<div id="attendendo_che_si_carichi">
la mia pagina in versione MUTA, quindi leggera (magari via <include> in php per non avere codice duplicato)
</div>
<div id="ormai_caricato" style="display:none">
la mia PAGINA PARLANTE, quindi pesante
</div>
Funziona dignitosamente, nonostante abbia lo stesso tempo di attesa, la versione leggera della pagina (4kb) la ottengo al volo... l'unica cosa
è che si tratta di una soluzione "per gli occhi"... infatti fino a che la PAGINA PARLANTE non si è caricata, la PAGINA MUTA non è interattiva, i link non sono cliccabili, ecc.
Eccone la VERSIONE LIVE
(notare come fino al caricamento della versione definitiva, la tagcloud non è cliccabile)
Mi chiedevo quindi:
secondo qualcuno di voi... si può fare qualcosa?
PS: la sto facendo lunga... lo so...
ma sono esperimenti utili per familiarizzare con js in vista di applicazioni in progetti futuri... e credo che condividerli sul forum possa essere d'aiuto ad altri novellini di js come me
(che vado a rovinare la mia home page dopo TANTA FATICA per validarla strict!! ma mi piacerebbe imparare un po' più di js...
)
Grazie comunque a tutta la community che mi ha dato tanto...