跳转到内容

音频节点(SoundNode)

如图1-1所示,可以在层级窗口中右键进行创建,也可以从小部件窗口中拖拽添加。

1-1

(图1-1)

在IDE中,将SoundNode节点添加到场景编辑的视图区后,属性面板中SoundNode的专属属性如下图所示:

1-2

(图1-2)

下面分别对这些属性进行介绍:

属性名称属性说明
Source添加音频文件源
是否背景音乐 IsMusic是否为背景音乐。勾选后,当前音频为背景音乐,如果有两个音频都勾选了IsMusic,则不能同时播放,只能播放一个。如果不勾选,当前音频文件可以与背景音乐、其它音频同时播放
循环次数 Loop循环播放的次数。设置为0,是无尽循环;设置为1,只播放一次
自动播放 AutoPlay运行时,是否自动播放

在Scene2D的属性设置面板中,增加一个自定义组件脚本。然后,将SoundNode拖入到其暴露的属性入口中。下面给出一个示例代码,实现脚本控制SoundNode:

const { regClass, property } = Laya;
@regClass()
export class NewScript extends Laya.Script {
//declare owner : Laya.Sprite3D;
@property({ type: Laya.SoundNode })
public sound: Laya.SoundNode;
constructor() {
super();
}
/**
* 组件被激活后执行,此时所有节点和组件均已创建完毕,此方法只执行一次
*/
onAwake(): void {
this.sound.source = "resources/sound.wav"; //音频路径
this.sound.loop = 0; //循环次数设置,要放在autoPlay参数设置前
this.sound.autoPlay = true; //自动播放
this.sound.isMusic = false; //是否为背景音乐
}
}

SoundNode节点在运行时只有声音效果,如果不想在IDE中添加并拖拽到装饰器暴露的属性入口,做这么繁琐的操作,那可以通过代码来创建。在Scene2D的属性设置面板中,增加一个自定义组件脚本,示例代码如下:

const { regClass, property } = Laya;
@regClass()
export class NewScript extends Laya.Script {
//declare owner : Laya.Sprite3D;
constructor() {
super();
}
/**
* 组件被激活后执行,此时所有节点和组件均已创建完毕,此方法只执行一次
*/
onAwake(): void {
let sound = new Laya.SoundNode();
// 添加到舞台
Laya.stage.addChild(sound);
sound.source = "resources/sound.wav"; //音频路径
sound.loop = 0; //循环次数设置,要放在autoPlay参数设置前
sound.autoPlay = true; //自动播放
sound.isMusic = false; //是否为背景音乐
}
}