2009-11-21 51 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); 
} 

现在的伟大工程!