不用多个schedule。你把要切换的灯想像成一个队列,每隔0.1秒检查一下这个队列有没有未显示的灯,有的话显示出来。
demoStart: function() {
var interval = 0.1; // 0.1秒检查一次
common.lights = []; // 初始灯的队列数组,假设还没有灯
common.num = 0; // 初始加载第0盏
this.schedule(this.nextLed, interval);
// 如果第一帧就要加载灯的话,在这里执行一次this.nextLed();否则会在interval后加载第一个灯
},
nextLed: function() {
// 如果当前要加载的灯(common.num),在灯数组中存在
if (common.num < common.lights.length) {
// 点亮这盏灯
common.onLeds();
// 准备点亮下一盏灯
common.num++;
console.log("这个是第" + common.num + "盏灯");
}
}
这样这个schedule就会每0.1秒检查一次你的common.lights,你要做的就是在你代码中任何想亮灯的地方,common.lights.push(light)添加一盏灯到灯队列里面,就可以了。