2009-11-21 55 views
1

我創建了一個滑動音量控制的小型音樂播放器。我在音量方面遇到問題。雖然它可以正確控制音量,但如果將初始音量設置爲低於100%,音量始終從100%開始,直到將鼠標移到播放器上。此時,音量會更改爲初始音量設置爲的值。音量滑塊 - 在鼠標移過之前音量不會改變

這是一個Flash錯誤,還是我錯過了什麼?

這裏是受影響的代碼(用於其它按鈕/功能不再贅述代碼):

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 2009-11-21 01:05:41

1

只是固定與此代碼:

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

現在的偉大工程!