Canvas fillText:逐步显示数字

时间:2017-01-05 20:48:03

标签: javascript html5-canvas

我制作了一个在网页上绘图的程序(比如Logo中的Turtle)。

绘制动画线条的代码例如:     var liste_mouvements = [];     var en_mouvement = false;     var en_couleur = false;     var ecrit = false;     var timer;

function avancer(distance){
liste_mouvements.push(function(){
var iter = 1 ;

en_mouvement = true;
var compteur = 1 ;
timer = setInterval(function() {
    var Angle = angle % 360 ;
    var theta = Angle/180*Math.PI ;
    if (ecrit) {
        ctx.beginPath();
        ctx.moveTo(x,y);
        x = Math.cos(theta)*distance/vitesse + x ;
        y = Math.sin(theta)*distance/vitesse + y ; 
        ctx.lineTo(x,y);
        ctx.stroke();
    }
    else {
        x = Math.cos(theta)*distance/vitesse + x ;
        y = Math.sin(theta)*distance/vitesse + y ; 
    }  
    compteur++;
    if(compteur>vitesse){
        clearInterval(timer);
        en_mouvement = false;
        prochain_mouvement();
    }
},
duree/vitesse);
 });
  prochain_mouvement();
}

function prochain_mouvement() {
    if (!en_mouvement && !en_couleur && !changement_taille && liste_mouvements.length) {
        var mouvement = liste_mouvements.shift() ;
        mouvement();
}
} 
function AFFICHER_TEXTE(txt,x_txt,y_txt) {
liste_mouvements.push(function() {
    changement_taille = true ;
    en_couleur = true ;
    en_mouvement = true ;
    ctx.fillText(txt,x_txt,y_txt);
    changement_taille = false ;
    en_couleur = false ;
    en_mouvement = false ;
    prochain_mouvement();
});
}

我可以制作一个逐渐出现的网格(使用函数avancer()和其他函数),我想用数字填充网格,这些数字也会逐渐显示,但数字会一起显示。

如何更改我的功能AFFICHER_TEXTE()来执行此操作?

我还有其他问题。我有一个保存图像的功能:

function SAUVER_IMAGE(fileName) {
liste_mouvements.push(function() {
var Nom_Image = prompt("Nom de l'image", "Tortue");
if(Nom_Image==null){
    Nom_Image = "Tortue";
}
Nom_Image = Nom_Image + ".png";
var canvasElement = document.getElementById("dessin");

var MIME_TYPE = "image/png";

var image_URL = canvasElement.toDataURL(MIME_TYPE);

var Lien_Telechargement = document.createElement('a');
Lien_Telechargement.download = Nom_Image;
Lien_Telechargement.href = image_URL;
Lien_Telechargement.dataset.downloadurl = [MIME_TYPE, Lien_Telechargement.download, Lien_Telechargement.href].join(':');

document.body.appendChild(Lien_Telechargement);
Lien_Telechargement.click();
document.body.removeChild(Lien_Telechargement);
prochain_mouvement();
}); 
}

使用Firefox,在使用AFFICHER_TEXTE()显示文本后调用保存图像的功能,但使用CHROME之前调用SAUVER_IMAGE()函数,并且我保存的图像不完整。我该如何解决这个问题?

谢谢!

0 个答案:

没有答案