HTML5 Canvas'da sarma kelimesini yazmaya çalışıyorum ama mücadele ediyorum!Word, HTML5 Canvas'da Sarma
Sarılmış metnin birden çok satırını yönetecek bir TextTyper nesnesi oluşturdum.
Sorun şu ki sonsuz bir döngü alıyorum!
Saf JavaScript (jQuery yok) ve HTML5 Canvas kullanan bir çözüme ihtiyacım var. http://jsfiddle.net/Jamesking56/eECar/
İşte benim TextTyper Nesne şimdiye kadar var:
function TextTyper(text, x, y, font, colour)
{
this.text = text || "";
this.x = x || 20;
this.y = y || 20;
this.font = font || false;
this.colour = colour || [0, 0, 0];
this.lines = 0;
// Calculate and draw the lines
this.draw = function()
{
canvas.width = canvas.width;
var maxWidth = (canvas.width - 40);
var words = this.text.split(' ');
var line = [words[0]]; //begin with a single word
for (var i = 1; i < words.length; i++)
{
while (ctx.measureText(line.join(' ')) < maxWidth && i < words.length - 1)
{
line.push(words[i++]);
}
if (i < words.length - 1)
{
//Loop ended because line became too wide
line.pop(); //Remove last word
i--; //Take one step back
}
this.lines++;
}
}
}
Herhangi Fikirler benim sorunları çözmek ve farklı stratejileri test etmek yardım etmek
Bir JSFiddle yaptık?
Kodunuzu geliştirici araçlarınızla adım adım takip edin ve sorunu bulmalısınız. –
'ctx.measureText', yeni bir 'TextMetrics' nesnesini döndürür ve gerçek genişliği değil. Bunu muhtemelen 'ctx.measureText (...). Width' olarak değiştirmeniz gerekecektir. Ayrıca, bir satırı saydıktan sonra 'satırı' boşaltmazsanız, yeni bir kelime aralığı genişliğini nasıl ölçmeyi beklersiniz? – Rikonator