当前位置: 首页 > 文档资料 > KAG 标签文档 v1.0 >

sound

优质
小牛编辑
138浏览
2023-12-01

标签

描述

bgmopt

设定背景音乐的属性

playbgm

播放背景音乐

pausebgm

暂停播放背景音乐

stopbgm

停止播放背景音乐

resumebgm

重新播放暂停的背景音乐

fadeinbgm

fadeoutbgm

fadebgm

淡入背景音乐

淡出背景音乐

淡化xchgbgm背景音乐

wb

wl

等待音乐淡入淡出

等待音乐停止播放

fadepausebgm

淡出暂停背景音乐

xchgbgm

交换背景音乐

setbgmlabel

clearbgmlabel

增加背景音乐的标签

清除所有由setbgmlabel建立的标签

setbgmstop

clearbgmstop

无视它

无视它

音效

seopt

设定音效的属性

playse

播放某一个编号的音效

stopse

停止播放某一编号的音效

fadeinse

fadeoutse

fadese

淡入音效

淡出音效

淡入或淡出音效

wf

ws

等待音效淡入淡出

等待音效停止播放

========================= 背景音乐 ===========================

bgmopt

说明:

(1) 设置bgm的参数

(2) 内部通过bgm.setOptions(elm)实现

属性:

device: 可以是”Wave”, “MIDI”, “CDDA”

volume: 声量, 范围0~100

gvolume: global声量, 范围0~100

例子:

with ( kag.tagHandlers ) {

.playbgm( %[ storage:"a.wav", loop:false, paused:false, start:5000 ] );

.bgmopt( %[ volume:50, gvolume:100 ] );

}

playbgm

说明:

(1) 播放背景音乐

(2) 内部通过bgm.play(elm)、clearBgmStop()、clearBgmLabel()实现

属性:

loop: 是否循环, Boolean,

storage: 音乐档案位置, String,

paused: 是否暂停,

start : 设置BGM.buf1.samplePosition

例子:

kag.tagHandlers.playbgm( %[ storage:"a.wav", loop:false, paused:true, start:5000 ] );

pausebgm

说明:

(1) 暂停播放背景音乐

(2) 内部通过bgm.pause()实现

例子:

kag.tagHandlers.pausebgm();

stopbgm

说明:

(1) 停止播放背景音乐

(2) 内部通过bgm.stop()实现

例子:

kag.tagHandlers.stopbgm();

resumebgm

说明:

(1) 重新播放暂停的背景音乐,不能播放由stopbgm停止的音乐

(2) 内部通过bgm.resume()实现

例子:

kag.tagHandlers.resumebgm();

fadeinbgm

说明:

(1) 音乐淡入效果, 声音逐渐变大

(2) 内部通过bgm.fadeIn(elm)实现

属性:

loop: 是否循环, 预设为true, Boolean

time: 淡入淡出维持时间, 默认值为5000, Integer

storage: 音乐档案位置, String,

start: 设置BGM.buf1.samplePosition

例子:

kag.tagHandlers.fadeinbgm( %[ storage:"a.wav", loop:false, time:5000 ] );

fadeoutbgm

说明:

(1) 音乐淡出效果, 声音渐渐变0, 此函数必须要开始playbgm才能执行

(2) 内部通过bgm.fadeOut(elm)实现

属性:

time: 淡入淡出维持时间, Integer

例子:

kag.tagHandlers.playbgm( %[ storage:"a.wav", loop:false, paused:false, start:5000 ] );

kag.tagHandlers.fadeoutbgm( %[ time:5000 ] );

fadepausebgm

说明:

(1) 音乐淡出效果, 声音渐渐变0, 并将BGM. inFadeAndPause=true, 此函数必须要开始playbgm才能执行

(2) 内部通过bgm.fadePause(elm)实现

属性:

time: 淡入淡出维持时间, Integer

例子:

kag.tagHandlers.playbgm( %[ storage:"a.wav", loop:false, paused:false, start:5000 ] );

kag.tagHandlers.fadepausebgm( %[ time:5000 ] );

fadebgm

说明:

(1) 音乐淡入淡出效果, 必须先执行playbgm函数

(2) 内部通过bgm.fade(elm)实现

属性:

time: 淡入淡出维持时间, 默认值为5000, Integer

volume: 范围0~100, Integer

例子:

kag.tagHandlers.playbgm( %[ storage:"a.wav", loop:false, paused:false, start:5000 ] );

kag.tagHandlers.fadebgm( %[ time:5000, volume:0 ] );

wb

说明:

(1) 等待声音开始淡入淡出, 如果canskip=true以及skipMode=true就回传0, 否则回传-2

(2) 内部通过waitBGMFade(elm)实现

属性:

canskip: 是否可以略过fade

例子:

with ( kag.tagHandlers ) {

.playbgm( %[ storage:"a.wav", loop:false, paused:false, start:5000 ] );

.fadeinbgm( %[ storage:"a.wav", loop:false, time:5000 ] );

.wb( %[canskip:true] );

}

wl

说明:

(1) 等待声音停止播放, 如果canskip=true以及skipMode=true就回传0, 否则回传-2

(2) 内部通过waitBGMStop(elm)实现

属性:

canskip: 是否可以略过fade

例子:

with ( kag.tagHandlers ) {

.playbgm( %[ storage:"a.wav", loop:false, paused:false, start:5000 ] );

.fadeinbgm( %[ storage:"a.wav", loop:false, time:5000 ] );

.wl( %[canskip:true] );

}

xchgbgm

说明:

(1) 将目前的背景音乐对象与BGM.buf2交换, 因为kag有两个bgm buffer

(2) 内部通过实现bgm.exchange(elm)、clearBgmStop()、clearBgmLabel()实现

属性:

storage: 音乐档案位置, String,

loop: 是否循环播放

time: 淡入淡出维持时间, 在没有指定inttime及outtime时使用

intime: 淡入时间, 默认值是5000

outtime: 淡出时间, 默认值是5000

overlap: 淡出时间及播放之间的延迟时间, 默认值是0

volume: 范围0~100, Integer

start: 设置BGM.buf1.samplePosition

例子:

//以下例子是把b.wav会换成a.wav, fade效果会消失

kag.tagHandlers.playbgm( %[ storage:"b.wav", loop:false, paused:false, start:5000 ] );

kag.tagHandlers.fadebgm( %[ time:5000, volume:0 ] );

kag.tagHandlers.xchgbgm( %[ storage:"a.wav", volume:50, loop:true, intime:100000 ] );

setbgmlabel

说明:

(1) 增加背景音乐的label(标签)

(2) 内部通过setBgmLabel(elm)实现

属性:

exp: 结束时执行的表达式

storage: 结束时跳到哪个ks档案去

target:ks 文件中的目标label是甚么

name: 标签名字

例子:

property handler {

getter { return; }

setter ( v ) {

System.inform( "hello" );

}

}

with ( kag.tagHandlers ) {

.playbgm( %[ storage:"a.wav", loop:false, paused:false, start:5000 ] );

.setbgmlabel( %[ exp:handler, storage:"first.ks", target:"start", name:"label1" ] );

}

clearbgmlabel

说明:

(1) 清除所有由setbgmlabel函数建立的labels

(2) 内部通过clearBgmLabel()实现

例子:

property handler {

getter { return; }

setter ( v ) {

System.inform( "hello" );

}

}

with ( kag.tagHandlers ) {

.playbgm( %[ storage:"a.wav", loop:false, paused:false, start:5000 ] );

.setbgmlabel(

%[ exp:handler, storage:"first.ks", target:"start", name:"label1" ]

);

. clearbgmlabel();

}

setbgmstop

说明:

(1) 背景音乐停止时执行的项目, 此函数无效, 因为BGM.tjs中的

//if(ps == "play" && cs == "stop")

//owner.onSoundBufferStop(this); // play => stop : 演奏が停止した

被注释, 无法触发BGMStop事件

(2) 内部通过setBgmStop(elm)实现

属性:

exp: 结束时执行的表达式

storage: 结束时跳到哪个ks档案去

target: ks文件中的目标label是甚么

例子:

property handler {

getter { return; }

setter ( v ) {

System.inform( "hello" );

}

}

with ( kag.tagHandlers ) {

.playbgm( %[ storage:"b.wav", loop:false, paused:false, start:5000 ] );

.setbgmstop( %[ exp:handler, storage:"first.ks", target:"start" ] );

}

clearbgmstop

说明:

(1) 清空由上面的setbgmstop函数写入的参数

(2) 内部通过clearBgmStop()实现

例子:

with ( kag.tagHandlers ) {

.playbgm( %[ storage:"b.wav", loop:false, paused:false, start:5000 ] );

.setbgmstop( %[ exp:handler, storage:"first.ks", target:"start" ] );

.clearBgmStop();

}

============================ 音效部份 =============================

seopt

说明:

(1) 设定音效属性

(2) 内部通过se[+elm.buf].setOptions(elm)实现

属性:

buf: 音效缓冲object的编号

volume: 最终的音量, 0~100000

gvolume: 全局音量, 0~100

pan: 左右声道, -100000~100000

例子:

var oSE1 = new SESoundBuffer (kag, "0");

kag.se[ 0 ] = oSE1;

with ( kag.tagHandlers ) {

.seopt( %[ buf:0, volume:50, gvolume:100, pan:0 ] );

.playse( %[ buf:0, storage:"a.wav", loop:true ] );

}

playse

说明:

(1) 播放某一个编号的音效

(2) 内部通过se[+elm.buf].play(elm)实现

属性:

buf: 音效缓冲object的编号

storage: 音效文件位置

start: 设置声效的samplePosition

loop: 是否循环播放

例子:

var oSE1 = new SESoundBuffer (kag, "sound1");

kag.se[ 0 ] = oSE1;

with ( kag.tagHandlers ) {

.playse( %[ buf:0, storage: "a.wav", loop:true ] );

}

stopse

说明:

(1) 停止播放某一个编号的音效

(2) 内部通过se[+elm.buf].stop()实现

属性:

buf: 音效缓冲object的编号

例子:

var oSE1 = new SESoundBuffer (kag, "sound1");

kag.se[ 0 ] = oSE1;

with ( kag.tagHandlers ) {

.playse( %[ buf:0, storage: "a.wav", loop:true ] );

.stopse( %[ buf:0 ] );

}

fadeinse

说明:

(1) 音效淡入效果, 声音渐渐变大

(2) 内部通过se[+elm.buf].fadeIn(elm)实现

属性:

buf: 音效缓冲object的编号

time: 维持时间, 默认值是5000

storage: 音效文件位置

start: 设置声效的samplePosition

loop: 是否循环播放

例子:

var oSE1 = new SESoundBuffer (kag, "sound1");

kag.se[ 0 ] = oSE1;

with ( kag.tagHandlers ) {

.fadeinse( %[ buf:0, time:5000, storage: "b.wav", loop:true ] );

}

fadeoutse

说明:

(1) 音效淡出效果, 声量变成0

(2) 内部通过se[+elm.buf].fadeOut(elm)实现

属性:

buf: 音效缓冲object的编号

time: 维持时间, 默认值是5000

storage: 音效文件位置

start: 设置声效的samplePosition

loop: 是否循环播放

例子:

var oSE1 = new SESoundBuffer (kag, "sound1");

kag.se[ 0 ] = oSE1;

with ( kag.tagHandlers ) {

.fadeoutse( %[ buf:0, time:5000, storage: "b.wav", loop:true ] );

}

fadese

说明:

(1) 音效淡出效果, 声量变成0

(2) 内部通过se[+elm.buf].fade(elm)实现

属性:

buf: 音效缓冲object的编号

time: 维持时间, 默认值是5000

storage: 音效文件位置

start: 设置声效的samplePosition

loop: 是否循环播放

volume: 最终的音量, 0~100

例子:

var oSE1 = new SESoundBuffer (kag, "sound1");

kag.se[ 0 ] = oSE1;

with ( kag.tagHandlers ) {

.fadeinse( %[ buf:0, time:5000, storage: "b.wav", loop:true, volume:100 ] );

}

wf

说明:

(1) 等到音效淡入淡出时, 如果canskip=true以及skipMode=true就回传0, 否则回传-2

(2) 内部通过waitSEFade(elm)实现

属性:

buf: 音效缓冲object的编号

canskip: 是否可以略过

例子:

var oSE1 = new SESoundBuffer (kag, "0");

kag.se[ 0 ] = oSE1;

with ( kag.tagHandlers ) {

.wf( %[ buf:0, canskip:false ] );

.playse( %[ buf:0, storage:"a.wav", loop:true ] );

}

ws

说明:

(1) 等到音效停止时, 如果canskip=true以及skipMode=true就回传0, 否则回传-2

(2) 内部通过waitSEStop(elm)实现

属性:

buf: 音效缓冲object的编号

canskip: 是否可以略过

例子:

var oSE1 = new SESoundBuffer (kag, "0");

kag.se[ 0 ] = oSE1;

with ( kag.tagHandlers ) {

.ws( %[ buf:0, canskip:false ] );

.playse( %[ buf:0, storage:"a.wav", loop:true ] );

}