私はビデオプレーヤーを構築していますが、ボリュームスライダーの部分でちょっと立ち往生しています。これはYouTubeスタイルの垂直スライダーです。つまり、スライダーが一番上の位置にある場合、音量は100%になり、スライダーを一番下の位置にドラッグすると、サウンドは0になります。現在、私が望むのとは逆の動作をしています:(
スライダーを下にドラッグすると音が大きくなり、上にドラッグすると音が小さくなります。
これがボリュームスライダーを扱う以下の私のコードです。
// Sound Controller Settings ······························
soundController = new SoundController();
soundContrColor = soundController.colorChip;
soundContrGray = soundController.grayCover;
soundContrGray.visible = false;
soundController.visible = true;
soundController.buttonMode = true;
soundController.soundSlider.addEventListener(MouseEvent.MOUSE_DOWN, sliderDown);
// SoundController Button Mouse Events ························
public function sliderDown(event:MouseEvent):void
{
soundController.soundSlider.startDrag(false, dragBounds);
soundController.soundSlider.addEventListener(MouseEvent.MOUSE_MOVE, sliderMove);
soundController.soundSlider.addEventListener(MouseEvent.MOUSE_UP, sliderUp);
soundContrGray.visible = true;
}
public function sliderMove(event:MouseEvent):void
{
soundContrGray.height = soundController.soundSlider.y;
userVolume = Math.round(((soundContrGray.y * soundContrGray.height) / 10) - 4);
//userVolume = soundContrGray.height;
setVolume(userVolume);
trace("soundController.mouseY = "+soundController.soundSlider.y);
trace("soundContrColor.height = "+Math.round(soundContrGray.height));
trace("userVolume = "+userVolume+"\r");
event.updateAfterEvent();
}
public function sliderUp(event:MouseEvent):void
{
lastVolPoint = soundContrGray.height;
setVolume(userVolume);
event.updateAfterEvent();
soundController.soundSlider.stopDrag();
soundController.soundSlider.removeEventListener(MouseEvent.MOUSE_MOVE, sliderMove);
soundController.soundSlider.removeEventListener(MouseEvent.MOUSE_UP, sliderUp);
}
[トレース]一番上までドラッグすると:
soundController.mouseY = 6
soundContrGray.height = 6
userVolume = 0
[トレース]一番下までドラッグすると:
soundController.mouseY = 56
soundContrGray.height = 56
userVolume = 30
私はこれが問題があるところだと信じています:
userVolume = Math.round(((soundContrGray.y * soundContrGray.height) / 10) - 4);
(-4)はオフセット値であるため、完全にドラッグしてオフにすると、4ではなく0になります。
これを何らかの方法で逆にする必要があるため、上記のトレースがスワップします...下に移動するとuserVolume = 4と上がると30になります。
これを見てくださった方、よろしくお願いします!:)