Jquery或javascript调用具有组间间隔的相同函数的组

时间:2012-05-15 04:47:49

标签: php javascript jquery

我正在使用php生成创建和播放声音的javascript 像:

$playsound .= "var $sound = new Audio('http://$siteurl/sounds/$sound.ogg'); soundplayer($sound $whentostart, $whentostop);   ";

soundplayer是一个javascript函数,它接受声音名称,以及何时开始和停止作为参数的持续时间。

我遇到的问题是我有一组声音播放器(带有参数)我想一起玩...即某些组同时播放声音。然后我需要在之后的某个时间间隔开始的其他组。

例如: 这个小组扮演: 声音播放器(带参数) 声音播放器(带参数)

介于1至4秒之间的某段时间

然后这个小组玩: 声音播放器(带参数) 声音播放器(带参数)

然后重复多个小组

我可以在jquery或javascript中做什么来将每个函数调用包装到soundplayer()组中,以使每个组在两者之间以特定间隔播放?

1 个答案:

答案 0 :(得分:1)

您可以使用setTimeout(链接)或setInterval(在您停止之前重复)来执行此操作。

在JavaScript中,从概念上讲,为了简单起见:

// Put the things you want to do in a function
function doThingsInOrder() {
    doOneThing('someArgument');
    doAnotherThing();
    doAThirdThing('someArgument');
    // Maybe one of them should be delayed a bit
    setTimeout(doADelayedThing, 200); // 200 = 200ms = 1/5th second
}

// Call the function every four seconds, forever
setInterval(doThingsInOrder, 4000);

这是setInterval版本。 setTimeout版本只涉及doThingsInOrder在最后通过setTimeout调用自己:

// Put the things you want to do in a function
function doThingsInOrder() {
    doOneThing('someArgument');
    doAnotherThing();
    doAThirdThing('someArgument');
    // Maybe one of them should be delayed a bit
    setTimeout(doADelayedThing, 200); // 200 = 200ms = 1/5th second

    // Set up next call
    setTimeout(doThingsInOrder, 4000);
}

// Start the process off
setTimeout(doThingsInOrder, 4000);