2009-11-21 2 views
1

Я создал небольшой музыкальный плеер с раздвижным регулятором громкости. У меня проблемы с объемом. Хотя он правильно контролирует громкость, если я устанавливаю начальный том меньше 100%, громкость всегда начинается со 100%, пока я не надвигаю мышь на плеер. В этот момент громкость изменяется на любой исходный том.Объемный ползунок - громкость не изменяется до тех пор, пока мышь над

Это ошибка вспышки, или я что-то упускаю?

Вот пораженный код (код для других кнопок/функций для краткости опущены):

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 
    } 

Я хотел бы, чтобы иметь возможность установить громкость на, скажем, 50%, но упомянутое выше поведение происходит каждый раз.

Любые идеи приветствуются.

ответ

1

Вам необходимо вызвать mySound_sound.setVolume() с вашим начальным значением. Прямо сейчас вы работаете только в обработчике onMouseMove.

+0

Должен был упомянуть, что у меня был и этот код, и у меня был такой же симптом. Вверху, у меня было: var song_volume: Number = 50; затем, прежде чем песня будет воспроизводиться в первый раз, эти строки: song_volume = -1 * song_volume; mySound_sound.setVolume (song_volume); Без труда! – BumbleBob

1

Просто фиксируется с этим кодом:

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

теперь работает отлично!

Смежные вопросы