如何使用按键避免图像闪烁
How to avoid flickering images with keypress?
我有一段代码,用户必须按0才能静音,或按1才能播放音乐。如果声音被静音,则当音乐播放时,图像会发生变化。
var audio = new Audio();
window.onload = function geluidMaken() {
audio.src = "../Geluiden/Achtergrond_Geluid.mp3";
audio.play();
audio.loop = true;
window.addEventListener("keypress", function geluidsKnoppen() {
var codeGeluid = event.which || event.keyCode;
if(codeGeluid == 48) {
var geluidAanKnop = new Image();
geluidAanKnop.src = "../Afbeeldingen/Sound_Button.png";
mijnObject.drawImage(geluidAanKnop, (canvas.width/2)-25, 850, geluidAanKnop.width, geluidAanKnop.height);
audio.muted = true;
}
else if(codeGeluid = 49) {
var geluidAfKnop = new Image();
geluidAfKnop.src = "../Afbeeldingen/Mute_Button.png";
mijnObject.drawImage(geluidAfKnop, (canvas.width/2)-25, 850, geluidAfKnop.width, geluidAfKnop.height);
audio.muted = false;
}
});
}
我还有一段代码,我在其中呈现了所有其他功能
function tekenenObjecten() {
mijnObject.clearRect(0, 0, canvas.width, canvas.height);
makenBalkKort();
makenBal();
makenMuur();
makenBord();
这些图像在画布上不可见,但当我单击键0或1时,图像会直接出现和消失。如何确保图像保持在画布上,并在按下0或1时发生更改?
在html5中使用画布时,请记住,当您重新绘制帧时,您会删除画布上的所有内容,然后在新帧中绘制您想要看到的所有内容。
在您的按键处理程序中,您绘制一次图像。当在代码的另一部分绘制新的框架时,画布将被清除,并且您永远不会重新绘制它。
你想做的可能是有一个总是绘制的占位符,然后只更改它的来源,让主循环来处理它
var audioKnop = new Image();
var audioAanSource = "../Afbeeldingen/Sound_Button.png";
var audioMuteSource = "../Afbeeldingen/Mute_Button.png";
function init() {
audioKnop.src = audioMuteSource;
}
function tekenenObjecten() {
mijnObject.clearRect(0, 0, canvas.width, canvas.height);
makenBalkKort();
makenBal();
makenMuur();
makenBord();
maakAudioButton();
}
function maakAudioButton() {
mijnObject.drawImage(audioKnop, (canvas.width/2)-25, 850, audioKnop.width, audioKnop.height);
}
window.addEventListener("keypress", function () {
var codeGeluid = event.which || event.keyCode;
if(codeGeluid == 48) {
audioKnop.src = audioAanSource;
audio.muted = true;
} else if(codeGeluid == 49) {
audioKnop.src = audioMuteSource;
audio.muted = false;
}
});
相关文章:
- 如何使用按键避免图像闪烁
- 使用setInterval()函数进行图像闪烁
- addClass,它更改bg图像,但在第一次加载时没有闪烁
- 悬停时setInterval中的图像闪烁
- 按下按钮时图像持续闪烁
- jQuery图像在悬停时闪烁
- 当使用MouseEvent将图像更改为其他图像时,如何避免闪烁
- 正在创建随机图像闪烁
- iOS 8中滚动时的背景图像闪烁问题
- Javascript-使图像出现,然后将其替换为另一个图像(闪烁)
- 如何在渲染Backbone视图时防止图像闪烁
- 无法使图像闪烁(得到)预期的错误
- 鼠标经过时图像闪烁
- Skrollr图像闪烁.Firefox预加载问题
- 防止在src更改时出现大图像闪烁
- 如何在Javascript中使图像闪烁和重叠
- 图像闪烁然后消失
- 图像闪烁ajax轮询
- 使用图像映射时,鼠标悬停上的图像闪烁javascript
- 从本地主机加载时图像闪烁