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