2009-11-21 5 views
1

J'ai créé un petit lecteur de musique avec un contrôle de volume coulissant. J'ai des problèmes avec le volume. Bien qu'il contrôle correctement le volume, si je règle le volume initial à moins de 100%, le volume commence toujours à 100% jusqu'à ce que je déplace ma souris sur le lecteur. À ce stade, le volume est modifié en fonction du volume initial défini.Curseur de volume - le volume ne change pas jusqu'à ce que la souris sur

Est-ce un bug flash, ou ai-je oublié quelque chose?

Voici le code affecté (code pour d'autres boutons/fonctions omises par souci de concision):

var song_initvolume:Number = 100; 
slider_1._x = groove_1._x + song_initvolume; 
playSong(0,song_play); 

slider_1.onPress = function() { 
    this.startDrag(true, groove_1._x, groove_1._y, groove_1._x + 96, groove_1._y); 
} 

slider_1.onRelease = function() { 
    this.stopDrag(); 
} 

slider_1.onMouseMove = function(){ 
    newPoint = new Object(); 
    newPoint.x = this._x; 
    newPoint.y = this._y; 
    groove_1.globalToLocal(newPoint); 
    mySound_sound.setVolume(-1 * newPoint.x); 
} 

function playSong(songNum,songPlay,reset_Pos){ 
    if(reset_Pos){ 
     mySound_sound = new Sound(); 
    } 
    var myTitle = mySongs_array[songNum].TITLE; 
    trace("Playing TITLE= " + myTitle); 
    var myArtist = mySongs_array[songNum].ARTIST; 
    trace("Playing ARTIST= " + myArtist); 
    var myURL = mySongs_array[songNum].URL; 
    trace("Playing URL= " + myURL); 

    title_txt.text = mySongs_array[songNum].TITLE; 
    artist_txt.text = mySongs_array[songNum].ARTIST; 
    mySound_sound.loadSound(myURL,songPlay); 

    // start oncomplete 
    mySound_sound.onSoundComplete = function() { 
    song_pos = 0; 
    reset_Pos = true; 

    if(song_continuous){ 
     song_play = true; 
     current_song++; 
     if (current_song>=my_total){ 
      current_song=0; 
      if(song_loop){ 
       song_play = true; 
      } else { 
       song_play = false; 
      } 
     } 
    } else { 
     song_play = false; 
    } 
    playSong(current_song,song_play,reset_Pos); 
} 

    // end oncomplete 
    } 

Je voudrais être en mesure de régler le volume à dire 50%, mais le comportement mentionné ci-dessus se produit chaque fois.

Toutes les idées sont grandement appréciées.

Répondre

1

Vous devez appeler mySound_sound.setVolume() avec votre valeur initiale. À l'heure actuelle, vous ne faites que dans le gestionnaire onMouseMove.

+0

Aurait dû mentionner que j'avais ce code là aussi et j'ai eu le même symptôme. En haut, j'avais: var song_volume: Number = 50; puis, avant que la chanson ne joue pour la première fois, ces lignes: song_volume = -1 * song_volume; mySound_sound.setVolume (song_volume); Pas génial! – BumbleBob

1

Juste fixé avec ce code:

mySound_sound.onLoad = function(){ 
    mySound_sound.setVolume(-1 * song_volume); 
} 

Fonctionne très bien maintenant!

Questions connexes