J'utilise le masque dégradé de composition "source-in" sur un canevas et je souhaite animer l'étirement du dégradé & du masque. Voici le code de compositing, une fonction appelée drawList
:Le canevas disparaît lors de l'animation du masque globalCompositeOperation "source-in"
var r = ctx.createLinearGradient(1100, 0, 1200 + stretch,0);
r.addColorStop(0,"rgba(255, 255, 255, 1.0");
r.addColorStop(0.8,"rgba(255, 255, 255, 0.0");
ctx.fillStyle = r;
ctx.globalCompositeOperation = "source-in";
ctx.fillRect(300, 0, 1200 + stretch, 1000);
stretch
commence à 0 et augmente en fonction animant l'aide requestAnimationFrame
, que je l'ai vérifié œuvres lors de l'animation d'un simple rectangle ou même ctx.clearRect(300, 0, 1200 + stretch, 1000)
. La fonction d'animation appelle drawList
à chaque itération et le drawList
.
Lors du chargement du texte de la liste à partir de drawList
fondus en fonction du remplissage en dégradé du rectangle ci-dessus. Le problème que je rencontre est que dès que la fonction d'animation est appelée, le canevas est effacé et ne redessine pas la liste. J'utiliserais ctx.clip(), mais j'ai vraiment besoin du dégradé pour créer l'effet de fondu.
Des idées? Est-ce une limitation de la toile?
Sons sur ce que vous attendez. Tout ce qui est dessiné avant le rect disparaîtra, mais vous devriez voir le rectangle de dégradé. N'oubliez pas de remettre la comp à la source après le rect. ou utilisez 'ctx.save()' et 'ctx.restore()' pour réinitialiser les états du GPU. – Blindman67
@ Blindman67 save() & restore() étaient juste le ticket. Merci mec. Pouvez-vous soumettre une réponse afin que je puisse la marquer comme la solution et vous pouvez obtenir les rep pts? – Rooncicle