मैं इस कैनवास स्क्रिप्ट के पीछे एक पृष्ठभूमि छवि लगाने की कोशिश कर रहा हूं। मुझे पता है कि यह संदर्भ के साथ कुछ करने के लिए है। फिलस्टाइल लेकिन यह सुनिश्चित नहीं है कि इसके बारे में कैसे जाना है।एचटीएमएल 5 कैनवास पृष्ठभूमि छवि
: - वर्तमान में सिर्फ पृष्ठभूमि के रूप में काला दिखा रहा है, एक नहीं छवि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", false);
req.send();
eval(req.responseText);
req.open("GET", "js/soundcloudplayer.js", false);
req.send();
eval(req.responseText);
req.open("GET", "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, 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
};
})();
संशोधित कोड:
context.fillStyle = "url('http://www.samskirrow.com/background.png')";
यहाँ मेरे वर्तमान कोड है: मैं कुछ इस तरह पढ़ने के लिए है कि रेखा करना चाहते हैं
// 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, 0);
context.fillRect(0, 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 = "#ff19a7";
context.stroke();
}
function updateWave(sound) {
waveLeft = sound.waveformData.left;
}
return {
init : init
};
})();
आप साइट है कि मैं यहाँ पर काम कर रहा हूँ देख सकते हैं: http://www.samskirrow.com/client-kyra
'context.fillStyle' केवल तार,' CanvasGradient' और 'CanvasPattern' वस्तुओं को स्वीकार करता है, और तार सीएसएस रंग मान के रूप में पार्स कर रहे हैं। यदि आप कैनवास में कोई छवि खींचना चाहते हैं, तो आवश्यक छवि के URL पर स्रोत सेट के साथ एक 'छवि' ऑब्जेक्ट बनाएं, और उसके बाद बस' context.drawImage' का उपयोग करें। यदि आप 'ड्रावेव' में किसी और चीज़ से पहले छवि खींचते हैं, तो जब आप कैनवास साफ़ करते हैं, तो आपकी पृष्ठभूमि होती है। – Rikonator
धन्यवाद @ रिकोनेटर मेरी स्क्रिप्टिंग उस महान नहीं है, किसी भी मौके पर आप विस्तार कर सकते हैं कि मैं आपके अंक कैसे कार्यान्वित करूं ?? –
@ लोक्टर ने पहले से ही जवाब दिया है और मेरे पास जोड़ने के लिए कुछ भी नहीं है, लेकिन यहां एक सक्रिय एनीमेशन के साथ एक पहेली है: http://jsfiddle.net/vZ8UT/ – Rikonator