有可能吗?我是ActionScript 3& S的新手。一直在玩滑块组件。我已经设置了一个带有图像的滑块,并设置了一个要播放的声音,所以如果该值大于0则会播放,如果它大于4则会停止。然而,当我导出它并且它没有错误。我确信我必须将event.value更改为其他内容而不是数字。或者更确切地说使用另一个事件,但我不确定。所以如果你站在这些图像之间,我会认为mp3会继续播放,而不是重新启动每个值。这就是我所拥有的
function changeHandler(event:SliderEvent):void {
aLoader.source = "pic"+event.value+".jpeg";
}
function music(event:SliderEvent):void {
var mySound:Sound = new tes1();
var myChannel:SoundChannel = new SoundChannel();
mySound.load(new URLRequest("tes1.mp3"));
if (event.value > 0 || event.value > 4 ){
myChannel = mySound.play();
}
else{
myChannel.stop();
}
}
答案 0 :(得分:0)
您正在每个滑块事件中创建一个新的声道,如果该值超出所需范围,则停止该新声道。但它一开始并没有播放任何声音。
你可能想要的是将声道存储在事件处理程序之外,当值在该范围内跳跃时可能不会重放声音:
slider.addEventListener(SliderEvent.CHANGE, music);
// Stores the sound channel between slider movements.
var myChannel:SoundChannel = new SoundChannel();
var isPlaying:Boolean = false;
function music(event:SliderEvent):void {
var mySound:Sound = new tes1();
mySound.load(new URLRequest("tes1.mp3"));
if (event.value > 0 || event.value > 4) {
// Check if we are already playing the sound and, if yes, do nothing
if (!isPlaying) {
myChannel = mySound.play();
isPlaying = true;
}
} else {
myChannel.stop();
isPlaying = false;
}
}
因此当值超出所需范围时,它会停止播放最后一个声音,当值在范围内移动时,它会继续播放而不是重新开始。