computeSpectrum - Leg med lyd i ActionScript 3

Hvis man tidligere ville synkronisere lyd og animation, var man nød til enten at gøre det manuelt, eller bruge et eksternt program til at analysere en given lyd og generere nogle data som man så herefter kunne arbejde videre med i Flash, men sådan er det ikke længere.

Den nye funktion til hedder computeSpectrum() og er i den tilsvarende nye klasse SoundMixer.
Der er allerede begyndt at dukke en del eksperimenter med den rundt omkring, blandt andre disse to:
Flash 9 Sound Spectrum
Flash 9 Sound Spectrum - Part 2

Udfra koden at dømme ser det jo super nemt ud, og det åbner virkeligt mange muligheder.
Sammen med Apollo vil man jo nu kunne lave en ekstremt fed mp3-afspiller for eksempel, men også på almindelige webprojekter åbner det mange nye døre…herligt :-)



Del:These icons link to social bookmarking sites where readers can share and discover new web pages.
  • del.icio.us
  • digg

3 kommentarer

  1. Steven siger: (16. december 2007 kl. 20:44 )

    Hej

    Hvis man nu gerne vil lave en knap til at starte og stoppe en lyd med, så er der blevet ændret en del i AS3 iforhold til AS2. sound.stop(); virker ikke længere.

    Så hvis man nu vil lave en knap der bare kan starte og stoppe en lyd, hvad gør man så?

    PS. tak for en blog der er til stor hjælp :)

    /Steven

  2. Steven siger: (16. december 2007 kl. 21:53 )

    Hej igen.

    Jeg fandt en løsning der kan bruges i mit og hvisse andre tilfælde, dog ikke den mest optimale løsning.

    var s:Sound = new Sound();
    var channel:SoundChannel;

    s.load(new URLRequest(”theme.mp3″));
    channel = s.play();

    mc_music.addEventListener(MouseEvent.MOUSE_UP,closemus);

    function closemus(e:Event){

    var transform:SoundTransform = channel.soundTransform;

    if(mc_music.currentFrame == 1) {
    mc_music.gotoAndPlay(2); //sætter mc_music til at vise “On”
    transform.volume = 0;
    channel.soundTransform = transform;
    }

    else{
    mc_music.gotoAndPlay(1); //sætter mc_music til at vise “Off”
    transform.volume = 1;
    channel.soundTransform = transform;

    }
    }

    Dette eksempel pauser musikken så den fortsætter hvor den slap, hvis du trykker på mc_music igen.
    Ulempen er dog at hvis du går til et andet punkt i din timeline og bagefter kommer tilbage til samme punkt så loades musiken igen og den vil spille oven i sig selv. Løste dog problemet ved at loade musikken i eks. frame 1 og så have mit main content i frame 2, og så sørge for at brugeren ikke bliver refereret tilbage til frame 1.

    Vil med glæde høre om andre løsninger :)
    /Steven

  3. Mads Buch Stage siger: (17. december 2007 kl. 10:37 )

    Hej Steven,

    Godt at du fik løst dit problem - har indlægget til i dag klar, men da ikke utænkeligt at jeg lidt senere kommer med mit bud på en løsning af det problem :-)

    /Mads

    P.s. Godt at det kan bruges

Skriv en kommentar