因此在按下键盘时无法发出声音
我有进口:
import flash.net.URLRequest;
import flash.media.Sound;
我有变量
private var soundDownRequest:URLRequest = new URLRequest ("SoundDown.mp3");
private var downSound:Sound = new Sound (soundDownRequest);
和事件监听器
private function keyDownHandler(evt:KeyboardEvent):void
{
if (evt.keyCode == 40)//ascii for down arrow
{
downSound.play();
}
}
sound文件夹与.as在同一个文件夹中,也在fla的库中,但仍然不起作用。知道为什么吗?
谢谢。
更新:
我让声音正常工作,但没有使用我上面尝试执行的外部方法。
必须在内部完成。
所以你需要:
import flash.media.SoundChannel;
-然后您需要确保您的声音文件位于您的 fla 库中。
一旦进入图书馆
-右键单击>属性
-选择“ ActionScript ”选项卡
-选中“导出 ActionScript ”
-根据声音给类命名
-按确定
添加这个变量(你的会有所不同):
private var downSound:TheDownSound = new TheDownSound();
downsound 是所选的变量名称,TheDownSound 是类的名称(之前为声音文件创建的类名称)
然后将其添加到您想要播放声音的位置:
var myDownSound:SoundChannel = downSound.play();
如果您无法像我一样在外部工作,请执行此操作。
要获得更好的解释,请观看这家伙的 YouTube 视频: https://www.youtube.com/watch?v=SZpwppe7yGs
最佳答案
如果您将 .mp3
文件放在与输出 .swf
相同的文件夹中,而不是靠近类 .as<,您的代码就可以正常工作
源文件(因为是加载声音的swf文件,所以路径必须是相对于它的)
public class ASEntryPoint extends Sprite {
private var soundDownRequest:URLRequest = new URLRequest ("click.mp3");
private var downSound:Sound = new Sound (soundDownRequest);
public function ASEntryPoint() {
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler);
}
private function keyDownHandler(evt:KeyboardEvent):void{
if (evt.keyCode == 40) {
downSound.play();
}
}
}
关于actionscript-3 - ActionScript 3.0 声音不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41797500/