• home
  • forum
  • my
  • kt
  • download
  • 'Pause' a sound object

    Author: 2007-06-10 09:28:10 From:

    So you want to use a sound object for your flash movie.. and give the user the ability to pause your sound instead of just stopping it and then starting it from the beginning?

    First of all - import a sound - via rightclicking on the sound in the library - choose 'linkage'.

    Choose to 'export this symbol', and give it a name you will be able to identify it by - in this case 'jinglebells'.

    On the movies first keyframe we will instantiate a sound object, attach your sound to that object, and tell the sound to play.
    here goes:
    s = new Sound();
    s.attachSound("jinglebells");
    s.start();
    
    Now that didn't hurt one bit! If you test your movie now - you should have music playing.

    Plz. notice that we have not put the sound in any frame - we have simply 'glued' it to an invisible object.


    Now for the hairy part.
    We want the music to continue playing from the position we pressed pause - so we have to time our sound.
    For this we will use the good old Date() object and place it in a function for easy access.
    In the first keyframe continue the script by inserting the following before s.start().
    i=1;
    function timeme (){
    now = new Date();
    var hours = now.getHours();
    var minutes = now.getMinutes();
    var seconds = now.getSeconds();
    _root["nowtime"+i] = (Number(hours)*3600)+(Number(minutes)*60)+seconds;
    _root.newstarttime = _root["nowtime"+i] - _root.nowtime1;
    i++;
    }
    

    and after the s.start().
    timeme();
    

    Now that was a strange brew - but in short the script times when we started the sound (nowtime1) and compares it to when we stopped the sound (nowtime+i). That info is converted to seconds, and is fed into our start button later.

    Next make 2 buttons - one for pausing the sound, and one for un-pausing it.
    The first button should have the following actionscript:
    on(press){
    s.stop();
    timeme();
    }
    


    The second button for unpausing the sound should have the following actionscript.
    on(press){
    s.stop();
    s.start(_root.newstarttime);
    }
    

    The thing that makes this work is the variable 'newstarttime' it is fed into the un-pause button and is used for the built in 'secondsOffset' method which starts the sound x-seconds into the sound.

    If you are experiencing trouble try importing another sound into your library.

    Good luck!

    » Level Advanced

    Added: : 2002-03-23
    Rating: 8.58 Votes: 104
    Hits: 1152
    » Author
    Marius Hartmann is a danish artist, currently writing a Ph.d-project on 'visualization of dynamic information'.
    » Download
    Download the files used in this tutorial.
    Download (0 kb)

    discuss this topic to forum

    relation tutorial

    No information

    Category

      3D (36)
      Math Physics (18)
      3rd Party (10)
      Navigation (70)
      Actionscripting (228)
      Optimization (17)
      Animation (166)
      Projector (11)
      Audio (54)
      Special Effects (170)
      Backend (26)
      Text Effects (92)
      Drawing (34)
      Tips and Techniques (58)
      Dynamic Content (38)
      Tricks (8)
      Games (114)
      Utilities (24)
      Getting Started (99)
      Video (59)
      Interactivity (48)
      Web Design (37)

    New

    Hot