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); 
} 

지금은 좋은 작품!

관련 문제