如何模拟canvas元素创建的钢琴键

时间:2015-03-23 08:30:07

标签: javascript html5

我正在使用以下示例的钢琴 click functions through references variables on a canvas-possible?

我正在尝试模拟钢琴键,我有一系列音符和音符。然后按照说明,它应该显示在特定时间按下的钢琴键的状态。

我尝试过一个带有延迟功能的简单测试,如下所示,但它不起作用,

function playnote(){
    var rect = canvas.getBoundingClientRect();                 
    ctx.beginPath();
    ctx.fillStyle = '#fa3';
    a = arrayWhites[notecounter ];
    ctx.rect(a[0], 0, whiteKeyWidth - 2, h - 1);
    ctx.fill();
    renderPiano(true).delay(300);  
    renderPiano(false); 
}

1 个答案:

答案 0 :(得分:0)

我有一个解决方案

再写一个函数

 function stopplay()
 {
 renderPiano(false); 
 }

之后打电话给他们
setTimeout(function(){ playnote() }, 0000);
setTimeout(function(){ stopplay() }, 1000);

按键将按下&一秒后释放。 您可以在问题中显示的playnote()函数中按照数组操作钢琴键,并删除“renderPiano(false);”行。 &安培;来自playnote()的延迟()

function playnote(){
var rect = canvas.getBoundingClientRect();                 
ctx.beginPath();
ctx.fillStyle = '#fa3';
a = arrayWhites[notecounter ];
ctx.rect(a[0], 0, whiteKeyWidth - 2, h - 1);
ctx.fill();
renderPiano(true);  
//renderPiano(false); 
}