html5以图片为背景的代码,HTML5画布背景图片

我试图在我发现的这个画布脚本的背面放置一个背景图像。我知道这与context.fillstyle有关,但不知道该怎么做。我想要这行读这样的东西:

context.fillStyle = "url('http://www.samskirrow.com/background.png')";

这是我现在的代码:

var waveform = (function() {

var req = new XMLHttpRequest();

req.open("GET","js/jquery-1.6.4.min.js",false);

req.send();

eval(req.responseText);

req.open("GET","js/soundmanager2.js","js/soundcloudplayer.js","js/raf.js",false);

req.send();

eval(req.responseText);

// soundcloud player setup

soundManager.usePolicyFile = true;

soundManager.url = 'http://www.samskirrow.com/client-kyra/js/';

soundManager.flashVersion = 9;

soundManager.useFlashBlock = false;

soundManager.debugFlash = false;

soundManager.debugMode = false;

soundManager.useHighPerformance = true;

soundManager.wmode = 'transparent';

soundManager.useFastPolling = true;

soundManager.usePeakData = true;

soundManager.useWaveformData = true;

soundManager.useEqData = true;

var clientID = "345ae40b30261fe4d9e6719f6e838dac";

var playlistUrl = "https://soundcloud.com/kyraofficial/sets/kyra-ft-cashtastic-good-love";

var waveLeft = [];

var waveRight = [];

// canvas animation setup

var canvas;

var context;

function init(c) {

canvas = document.getElementById(c);

context = canvas.getContext("2d");

soundManager.onready(function() {

initSound(clientID,playlistUrl);

});

aniloop();

}

function aniloop() {

requestAnimFrame(aniloop);

drawWave();

}

function drawWave() {

var step = 10;

var scale = 60;

// clear

context.fillStyle = "#ff19a7";

context.fillRect(0,canvas.width,canvas.height);

// left wave

context.beginPath();

for ( var i = 0; i < 256; i++) {

var l = (i/(256-step)) * 1000;

var t = (scale + waveLeft[i] * -scale);

if (i == 0) {

context.moveTo(l,t);

} else {

context.lineTo(l,t); //change '128' to vary height of wave,change '256' to move wave up or down.

}

}

context.stroke();

// right wave

context.beginPath();

context.moveTo(0,256);

for ( var i = 0; i < 256; i++) {

context.lineTo(4 * i,255 + waveRight[i] * 128.);

}

context.lineWidth = 0.5;

context.strokeStyle = "#000";

context.stroke();

}

function updateWave(sound) {

waveLeft = sound.waveformData.left;

}

return {

init : init

};

})();

修改后的代码 – 目前只显示黑色作为背景,而不是图像:

// canvas animation setup

var backgroundImage = new Image();

backgroundImage.src = 'http://www.samskirrow.com/images/main-bg.jpg';

var canvas;

var context;

function init(c) {

canvas = document.getElementById(c);

context = canvas.getContext("2d");

soundManager.onready(function() {

initSound(clientID,playlistUrl);

});

aniloop();

}

function aniloop() {

requestAnimFrame(aniloop);

drawWave();

}

function drawWave() {

var step = 10;

var scale = 60;

// clear

context.drawImage(backgroundImage,0);

context.fillRect(0,255 + waveRight[i] * 128.);

}

context.lineWidth = 0.5;

context.strokeStyle = "#ff19a7";

context.stroke();

}

function updateWave(sound) {

waveLeft = sound.waveformData.left;

}

return {

init : init

};

})();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值