Results 1 to 5 of 5

Thread: Problem loading 2 functions concurrently

  1. #1
    Join Date
    Sep 2006
    Posts
    3
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Default Problem loading 2 functions concurrently

    Hi all, was trying to load the snow function and the mp3 function at the same time.. But found that only the snow function works and the mp3 does not play when the website is loaded.. Need help to load both simultaneously ya.. The code is below.. Thanks in advance

    <body onLoad="switchSongs(0)">
    <script>
    // CREDITS:
    // Snowmaker Copyright (c) 2003 Peter Gehrig. All rights reserved.

    // Set the number of snowflakes (more than 30 - 40 not recommended)
    var snowmax=40

    // Set the colors for the snow. Add as many colors as you like
    var snowcolor=new Array("#aaaacc","#ddddFF","#ccccDD")

    // Set the fonts, that create the snowflakes. Add as many fonts as you like
    var snowtype=new Array("Arial Black","Arial Narrow","Times","Comic Sans MS")

    // Set the letter that creates your snowflake (recommended:*)
    var snowletter="*"

    // Set the speed of sinking (recommended values range from 0.3 to 2)
    var sinkspeed=0.6

    // Set the maximal-size of your snowflaxes(22)
    var snowmaxsize=26

    // Set the minimal-size of your snowflaxes(8)
    var snowminsize=12

    // Set the snowing-zone
    // Set 1 for all-over-snowing, set 2 for left-side-snowing
    // Set 3 for center-snowing, set 4 for right-side-snowing
    var snowingzone=1

    ///////////////////////////////////////////////////////////////////////////
    // CONFIGURATION ENDS HERE
    ///////////////////////////////////////////////////////////////////////////


    // Do not edit below this line
    var snow=new Array()
    var marginbottom
    var marginright
    var timer
    var i_snow=0
    var x_mv=new Array();
    var crds=new Array();
    var lftrght=new Array();
    var browserinfos=navigator.userAgent
    var ie5=document.all&&document.getElementById&&!browserinfos.match(/Opera/)
    var ns6=document.getElementById&&!document.all
    var opera=browserinfos.match(/Opera/)
    var browserok=ie5||ns6||opera

    function randommaker(range) {
    rand=Math.floor(range*Math.random())
    return rand
    }

    function initsnow() {
    if (ie5 || opera) {
    marginbottom = document.body.clientHeight
    marginright = document.body.clientWidth
    }
    else if (ns6) {
    marginbottom = window.innerHeight
    marginright = window.innerWidth
    }
    var snowsizerange=snowmaxsize-snowminsize
    for (i=0;i<=snowmax;i++) {
    crds[i] = 0;
    lftrght[i] = Math.random()*15;
    x_mv[i] = 0.03 + Math.random()/10;
    snow[i]=document.getElementById("s"+i)
    snow[i].style.fontFamily=snowtype[randommaker(snowtype.length)]
    snow[i].size=randommaker(snowsizerange)+snowminsize
    snow[i].style.fontSize=snow[i].size
    snow[i].style.color=snowcolor[randommaker(snowcolor.length)]
    snow[i].sink=sinkspeed*snow[i].size/5
    if (snowingzone==1) {snow[i].posx=randommaker(marginright-snow[i].size)}
    if (snowingzone==2) {snow[i].posx=randommaker(marginright/2-snow[i].size)}
    if (snowingzone==3) {snow[i].posx=randommaker(marginright/2-snow[i].size)+marginright/4}
    if (snowingzone==4) {snow[i].posx=randommaker(marginright/2-snow[i].size)+marginright/2}
    snow[i].posy=randommaker(2*marginbottom-marginbottom-2*snow[i].size)
    snow[i].style.left=snow[i].posx
    snow[i].style.top=snow[i].posy
    }
    movesnow()
    }

    function movesnow() {
    for (i=0;i<=snowmax;i++) {
    crds[i] += x_mv[i];
    snow[i].posy+=snow[i].sink
    snow[i].style.left=snow[i].posx+lftrght[i]*Math.sin(crds[i]);
    snow[i].style.top=snow[i].posy

    if (snow[i].posy>=marginbottom-2*snow[i].size || parseInt(snow[i].style.left)>(marginright-3*lftrght[i])){
    if (snowingzone==1) {snow[i].posx=randommaker(marginright-snow[i].size)}
    if (snowingzone==2) {snow[i].posx=randommaker(marginright/2-snow[i].size)}
    if (snowingzone==3) {snow[i].posx=randommaker(marginright/2-snow[i].size)+marginright/4}
    if (snowingzone==4) {snow[i].posx=randommaker(marginright/2-snow[i].size)+marginright/2}
    snow[i].posy=0
    }
    }
    var timer=setTimeout("movesnow()",50)
    }

    for (i=0;i<=snowmax;i++) {
    document.write("<span id='s"+i+"' style='position:absolute;z-index:3;top:-"+snowmaxsize+"'>"+snowletter+"</span>")
    }


    if (browserok) {
    window.onload=initsnow
    }

    </script>

    <script>
    if (!document.layers)
    document.write('<div id="divStayTopRight" style="position:absolute">')
    </script>

    <layer id="divStayTopRight">

    <script>

    var songs = new Array(
    "http://www.ultimateuploads.com/audio/audio/c4fde808e01f3cdb6ac60cb57d9de2a8/Lin Jun Jie - Dou Jiang You Tiao.mp3",
    "Lin Jun Jie- - Dou Jiang You Tiao"
    );

    function switchSongs(i)
    {
    var file = songs[i * 2];
    var title = songs[i * 2 + 1];
    var element = document.getElementById('mysound_wrapper');
    element.innerHTML = embedSound(file);
    var element = document.getElementById('songtitle');
    element.innerHTML = title;
    var selector = document.getElementById('song_selector');
    selector.selectedIndex = i;
    return;
    }

    function embedSound(sound)
    {
    return '<embed src="' + sound + '" autostart="true" ' +
    'width="335" height="22">';
    }
    </script>

    <div align="center">
    <select name="song_selector" id="song_selector"
    onChange="switchSongs(selectedIndex)" style="FONT-SIZE: 9pt; BACKGROUND:#ffffff; WIDTH: 335; COLOR: #587B93; font-face:

    verdana;">

    <script>
    for (i = 0; (i < songs.length); i += 2) {
    var file = songs[i];
    var title = songs[i + 1];
    document.write('<option value="' +
    i + '">' +
    title + '</option>\n');
    }
    </script>
    </select>

    <div id="mysound_wrapper">
    <noscript>
    Our music player requires that you enable JavaScript in your
    web browser's preferences.
    </noscript>
    </div>
    <!-- END OF MP3 PLAYER -->
    </layer>

  2. #2
    Join Date
    Mar 2005
    Location
    SE PA USA
    Posts
    30,495
    Thanks
    82
    Thanked 3,449 Times in 3,410 Posts
    Blog Entries
    12

    Default

    You have more than two functions, you have two entire scripts! However, it is the two onload functions that are giving you the problem. This must be fixed for the two scripts to work together but, there may be other problems as well. Here is one way to combine your two onload events - first, get rid of the onload event in the body tag (red):

    Code:
    <body onLoad="switchSongs(0)">
    Next, replace this:

    Code:
    if (browserok) {
    window.onload=initsnow
    }
    with this:

    Code:
    window.onload=function(){
    switchSongs(0);
    if (browserok)
    initsnow();
    }
    All other things being equal, which they probably are, and you will be in business.
    - John
    ________________________

    Show Additional Thanks: International Rescue Committee - Donate or: The Ocean Conservancy - Donate or: PayPal - Donate

  3. #3
    Join Date
    Sep 2006
    Posts
    3
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Default

    Thanks for the reply John

    But now the snow script is not working but the song one is.. Could there be other problems?

  4. #4
    Join Date
    Mar 2005
    Location
    SE PA USA
    Posts
    30,495
    Thanks
    82
    Thanked 3,449 Times in 3,410 Posts
    Blog Entries
    12

    Default

    Sure could. If the script that is working has defined something in a way that the script that is not working doesn't like, that could do it. Also if there are shared variable or function names between the two scripts.

    One thing I can see, glancing at it is that both scripts use the variable i in the global scope. This can be a real problem. You have less i's in the music script, change those all to j's and you might be OK:

    Code:
    <script>
    
    var songs = new Array(
    "http://www.ultimateuploads.com/audio/audio/c4fde808e01f3cdb6ac60cb57d9de2a8/Lin Jun Jie - Dou Jiang You Tiao.mp3",
    "Lin Jun Jie- - Dou Jiang You Tiao"
    );
    
    function switchSongs(j)
    {
    var file = songs[j * 2];
    var title = songs[j * 2 + 1];
    var element = document.getElementById('mysound_wrapper');
    element.innerHTML = embedSound(file);
    var element = document.getElementById('songtitle');
    element.innerHTML = title;
    var selector = document.getElementById('song_selector'); 
    selector.selectedIndex = j;
    return;
    }
    
    function embedSound(sound)
    {
    return '<embed src="' + sound + '" autostart="true" ' +
    'width="335" height="22">';
    }
    </script>
    
    <div align="center">
    <select name="song_selector" id="song_selector"
    onChange="switchSongs(selectedIndex)" style="FONT-SIZE: 9pt; BACKGROUND:#ffffff; WIDTH: 335; COLOR: #587B93; font-face: 
    
    verdana;">
    
    <script>
    for (j = 0; (j < songs.length); j += 2) {
    var file = songs[j];
    var title = songs[j + 1];
    document.write('<option value="' +
    j + '">' +
    title + '</option>\n');
    }
    </script>
    </select>
    
    <div id="mysound_wrapper">
    <noscript>
    Our music player requires that you enable JavaScript in your
    web browser's preferences.
    </noscript>
    </div>
    <!-- END OF MP3 PLAYER -->
    </layer>
    That's if there are no other problems and I have separated the music script out correctly.
    - John
    ________________________

    Show Additional Thanks: International Rescue Committee - Donate or: The Ocean Conservancy - Donate or: PayPal - Donate

  5. #5
    Join Date
    Sep 2006
    Posts
    3
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Default

    Tried your method John, the same problem still exist. Is there no other way that i can make both work?

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •