38 messaggi dal 08 ottobre 2003
Ho scaricato da un sito francese degli script java su pagine .asp che gestiscono la musica presente su file swf.
Nella nostra prima pagina troviamo uno script java che apre una finestra secondaria .asp (con un movie .swf che e' la musica) e la colloca sotto alla principale dove viene eseguita la musica, lo script in questione e' il seguente:


// DÈtection des navigateurs
ns4 = (document.layers)? true:false
ie5 = (document.all)? true:false
NS6 = (!document.all && document.getElementById) ? true : false

/*StopAndPlayMusic()-----------------------------------------------------
- Descript : Arrete de faire jouer la musique de fond si elle est presente.
- Ensuite, la musique du flash commence
- Date de creation : 11 avril 2002
- Date de modification : --
--------------------------------------------------------------------------*/
function StopAndPlayMusic()
{
if (GetCookie('musique') > 0 && GetCookie('musique_fichier') != null)
{
//sinon, on creer a nouveau une reference a la fenetre et on la ferme
window2 = window.open('musique.asp','musique','width=115,height=115');
if (window.window2)
{
window2.close();
SetCookie('musique_fichier', '');
window2 = null;
}
}
Music.TGotoAndPlay('/','start');
}
/*StopAndPlayMultiMusic-----------------------------------------------------
- Descript : Arrete de faire jouer la musique de fond si elle est presente.
- Ensuite, la musique du flash commence
- Template :
- spectaculera/quidam_niv3
- Date de creation : 11 avril 2002
- Date de modification : --
--------------------------------------------------------------------------*/
function StopAndPlayMultiMusic(noMusic)
{
if (GetCookie('musique') > 0 && GetCookie('musique_fichier') != null)
{
//sinon, on creer a nouveau une reference a la fenetre et on la ferme
window2 = window.open('musique.asp','musique','width=115,height=115');
if (window.window2)
{
window2.close();
SetCookie('musique_fichier', '');
window2 = null;
}
}
//Choix de musique a jouer
if (noMusic == "Music1")
{
var test = Music2.IsPlaying( );
//fermeture de la musique 2 si elle joue
if (Music2.IsPlaying( ))
{
Music2.TStopPlay('/');
}
Music1.TGotoAndPlay('/','start');
}
if (noMusic == "Music2")
{
//fermeture de la musique 1 si elle joue
if (Music1.IsPlaying( ))
{
Music1.TStopPlay('/');
}
Music2.TGotoAndPlay('/','start');
}
}
/*VerifCookieLoading(name, value, frameValue)----------------------
- Descript : Verifie si l'utilisateur a deja visite la page ou se trouve la
- la fonction. Si oui, le flash se rendra au frame numero "frameValue"
- Template :
- spectaculera/default
- worldview/worldview
- home/home
- In :
- name : nom du cookie
- value : valeur du cookie (1 par defaut)
- frameValue : numero du frame a afficher
- music : musique a faire jouer si l'utilisateur a active sa musique
- Date de creation : 9 avril 2002
- Date de modification : --
--------------------------------------------------------------------------*/
function VerifCookieLoading(name, value, frameValue)
{
var isVisited = GetCookie(name);
if (isVisited)
//Si la page fut deja visitee, on se rend au numero du frame
{
var mySwf = eval('window.document.movieSpec');
var pourcentage = mySwf.PercentLoaded();

if (pourcentage = 100)
{
if (mySwf.IsPlaying())
{
mySwf.GotoFrame(frameValue);
mySwf.Play();
}
}
}
else
//Sinon, un cookie de session est inscrit
{
document.cookie = name + "=" + escape(value);
}
}

function musique(fichier) {
if ((!window.window2)||(window2.closed)) {
window2 = window.open('musique.asp?fichier='+fichier,'musique','width=115,height=115');
SetCookie('musique', '1');
SetCookie('musique_fichier', fichier);
self.focus();
}
else {
SetCookie('musique', '0');
SetCookie('musique_fichier', '');
window2.close();
window2 = null;
}
}

function SetCookie(name, value, path, domain) {

//var expiration = new Date();
//expiration.setTime(expiration.getTime() + (100000*1000000)); // 1 day

document.cookie = name + "=" + escape(value)+
//"; expires=" + expiration.toGMTString() +
"; path=/";
//((domain == null) ? "" : "; domain=" + domain);
}




function GetCookie(name) {
var cname = name + "=";
var dc = document.cookie;

if (dc.length > 0) {
begin = dc.indexOf(cname);
if (begin != -1) {
begin += cname.length;
end = dc.indexOf(";", begin);
if (end == -1) end = dc.length;
return unescape(dc.substring(begin, end));
}
}
return null;
}

function set_musique(fichier) {

var ismusique = GetCookie('musique');
musique_fichier = GetCookie('musique_fichier');
if (ismusique == null) {
window2 = window.open('musique.asp?fichier='+fichier,'musique','width=115,height=115');
SetCookie('musique', '1');
SetCookie('musique_fichier', fichier);
}
if (ismusique == 1) {
if (musique_fichier!=fichier) {
window2 = window.open('musique.asp?fichier='+fichier,'musique','width=115,height=115');
SetCookie('musique_fichier', fichier);
}
}
if (ismusique == 3) {
SetCookie('musique', '1');
window2 = window.open('musique.asp?fichier='+fichier,'musique','width=115,height=115');
SetCookie('musique_fichier', fichier);
}
}


FINE SCRIPT 1
______________________________________________________________



Nella pagina asp invece e' collocato lo script seguente




var ns4 = (document.layers)? true:false
var ie4 = (document.all)? true:false
var NS6 = (!document.all && document.getElementById) ? true : false


function NoError(msg, url, lno)
{
new_site(msg);
return true;
}

if (ns4){
window.onerror = NoError;
}

function new_site(msg){
SetCookie('musique', '3');
window.close();
}



function check_main(){
setTimeout("check_open()", 100);
}

function SetCookie(name, value, path, domain) {

document.cookie = name + "=" + escape(value)+
"; path=/";
}


function GetCookie(name) {
var cname = name + "=";
var dc = document.cookie;

if (dc.length > 0) {
begin = dc.indexOf(cname);
if (begin != -1) {
begin += cname.length;
end = dc.indexOf(";", begin);
if (end == -1) end = dc.length;
return unescape(dc.substring(begin, end));
}
}
return null;
}

function check_open(){
var openerWin = opener.document.domain;
check_main();
}


Questi due script passando di pagina in pagina cambiano l'swf musicale all'interno della pagina secondaria .ASP

Tutte le pagine htm nel body devono avere questo comando:
<BODY bgcolor="#FFFFFF" onload="set_musique('NOME MUSICA')">.


Il mio problema e' che il path alla pagina asp viene passato ma l'swf non viene sostituito.
perche?

Se non e' chiara la mia spiegazione potete verificare il funzionamento al sito web
http://www.cirquedusoleil.com

Ringrazio chiunque possa aiutarmi
11.886 messaggi dal 09 febbraio 2002
Contributi
Lascia perdere quello script, fa uso della funzionalità LiveConnect che non è più supportata da alcuni browser.

L'associazione file musicali - swf non mi sembra molto azzeccata, a meno che non devi gestire facilmente delle mp3 in streaming e hai un sito in flash.

Secondo me ti conviene lasciare le mp3 (se sono mp3) come file esterni, poi da flashmx o superiore crei un piccolo script di 5 o 6 righe che ti carica il file a runtime e lo riproduce, a seconda del parametro che gli passi via querystring.
Se non conosci flash, abbandona, rischi di ingarbugliarti su una cosa che è realizzabile tranquillamente senza usare robe complicate

Enjoy learning and just keep making
38 messaggi dal 08 ottobre 2003
Sto realizzando un sito flash per un cliente e le funzioni interessanti che ho notato nel sito www.cirquedusoleil.com sono proprio la gestione della musica che e' cio' che il cliente mi ha chiesto.
Nel citato sito la musica si carica in maniera indipendente dalla pagina flash che si va a vedere rendendo la visione nettamente piu rapida e da qualunque pagina la si spenga anche cambiando pagina non si riaccende finche non lo si fa fisicamente attraverso il pulsante.
Queste sono le funzioni di cui ho bisogno.
Ho provato ha semplificare la cosa creando per ogni pagina htm con movie flash una finestra secondaria che si apre sotto con la musica con un semplice window.open ecc. in javascript ed un pulsante flash nel filmato principale che richiama sempre un comando java close.
Funziona ma se spengo la musica in una pagina quando passo ad una pagina diversa chiaramente la musica di questa nuova pagina si riavvia.
Comunque, cio' che voglo evitare e' di caricare la musica nei movie swf principali, conosco flash abbastanza ma forse non ha questo livello di programmazione.

Aiutooooo
Grazie

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.