我想在CS4中停止特定声音而不会同时停止所有声音。有一些简单的东西我可以复制和粘贴会很棒,因为我已经环顾了很多寻找答案并获得了很多没有结束工作的mumbo-jumbo。 谢谢!
答案 0 :(得分:2)
您使用的是哪种版本的动作脚本,AS2或AS3?
你是怎么播放声音的?它是否位于时间轴上的关键帧中?您是否使用actionscript导入并从库中播放?
(使用时间轴代码编辑)
好的,如果它在时间轴上,你需要使用动作脚本来播放它,这样你以后可以单独定位它来阻止它。
首先,转到您的图书馆,右键单击您的声音并编辑其属性。您希望将其导出为actionscript,并为其提供唯一的actionscript标识符,例如“MyGreatSound”。没有空格等,只有一个字。
从关键帧中取出声音。
接下来,在动作图层中创建一个与声音开头相对应的关键帧并将其粘贴到其中; (这假设您在图书馆中发出了'MyGreatSound'标识符的声音)
var myChannel:SoundChannel = new SoundChannel();
var mySound:Sound = new MyGreatSound();
myChannel = mySound.play(0);
这将像以前一样播放你的声音。
要停止它,请创建另一个关键帧,该关键帧对应于您希望声音停止的时间轴中的点。
粘贴以下内容;
myChannel.stop();
您可能会遇到范围问题,但请试一试。
此处还有一些示例:http://www.republicofcode.com/tutorials/flash/as3sound/
答案 1 :(得分:0)
提供了示例代码,您可以使用和更改:
package {
import flash.display.Sprite;
import flash.media.Sound;
import flash.media.SoundChannel;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.text.TextField;
import flash.events.MouseEvent;
import flash.text.TextFieldAutoSize;
public class SoundChannel_stopExample extends Sprite {
private var snd:Sound = new Sound();
private var channel:SoundChannel = new SoundChannel();
private var button:TextField = new TextField();
public function SoundChannel_stopExample() {
var req:URLRequest = new URLRequest("MySound.mp3");
snd.load(req);
button.x = 10;
button.y = 10;
button.text = "PLAY";
button.border = true;
button.background = true;
button.selectable = false;
button.autoSize = TextFieldAutoSize.CENTER;
button.addEventListener(MouseEvent.CLICK, clickHandler);
this.addChild(button);
}
private function clickHandler(e:MouseEvent):void {
var pausePosition:int = channel.position;
if(button.text == "PLAY") {
channel = snd.play(pausePosition);
button.text = "PAUSE";
}
else {
channel.stop();
button.text = "PLAY";
}
}
}
}
基本上,您为Sound
分配SoundChannel
,然后停止整个频道(而不是声音本身)。