音频节点(SoundNode)

1. LayaAir IDE中使用音频节点

1.1 创建SoundNode

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

1-1

(图1-1)

1.2 属性介绍

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

1-2

(图1-2)

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

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

1.3 脚本控制SoundNode

在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; //是否为背景音乐

    }
}

2.代码创建SoundNode

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; //是否为背景音乐
    }
}
Copyright ©Layabox 2022 all right reserved,powered by LayaAir Engine更新时间: 2023-06-28 17:02:59

results matching ""

    No results matching ""