音量滑块 - 鼠标悬停后音量不会改变

时间:2009-11-21 00:03:11

标签: actionscript actionscript-2 flash flash-cs3

我创造了一个带滑动音量控制的小型音乐播放器。我的音量有问题。虽然它可以正确控制音量,但如果我将初始音量设置为小于100%,则音量始终从100%开始,直到我将鼠标移到播放器上。此时,音量将更改为初始音量设置为的任何值。

这是一个flash bug,还是我错过了什么?

以下是受影响的代码(为简洁省略了其他按钮/功能的代码):

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%,但每次都会出现上述行为。

非常感谢任何想法。

2 个答案:

答案 0 :(得分:1)

您需要使用初始值调用mySound_sound.setVolume()。现在你只进入onMouseMove处理程序。

答案 1 :(得分:1)

使用此代码修复:

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

现在很棒!