前提・実現したいこと
下記MDNのcanvasチュートリアルを用いて、htmlで実装されているcanvasタグの学習をしております。
https://developer.mozilla.org/ja/docs/Web/Guide/HTML/Canvas_tutorial/Basic_usage
この中で、「単純な描画」という項目でサンプルコードの記載があり、その挙動を確認していたのですが、getContextメソッドの挙動が分からず、質問いたしました。
発生している問題・エラーメッセージ
①サンプルコードを実行すると、正常に表示される
②サンプルコードの中の、
「var ctx = canvas.getContext("2d");」
という1文の("2D")という部分を('2D')に変更してみる。
具体的には、
「var ctx = canvas.getContext('2D');」
に変更して保存、再読み込みすると、描画がされなくなる
③再度、
「var ctx = canvas.getContext("2d");」
に記述を戻しても、2度と描画は行われなくなり、そのコードは2度と使えなくなってしまう
該当のソースコード
html5
<サンプルコード>
<!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <script type="application/javascript"> function draw() { var canvas = document.getElementById("canvas"); if (canvas.getContext) { var ctx = canvas.getContext("2d");</script> </head> <body onload="draw();"> <canvas id="canvas" width="150" height="150"></canvas> </body> </html>ctx.fillStyle = "rgb(200,0,0)"; ctx.fillRect (10, 10, 50, 50); ctx.fillStyle = "rgba(0, 0, 200, 0.5)"; ctx.fillRect (30, 30, 50, 50); } }
<描画できなくなるコード>
<!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <script type="application/javascript"> function draw() { var canvas = document.getElementById("canvas"); if (canvas.getContext) { var ctx = canvas.getContext('2D');</script> </head> <body onload="draw();"> <canvas id="canvas" width="150" height="150"></canvas> </body> </html>ctx.fillStyle = "rgb(200,0,0)"; ctx.fillRect (10, 10, 50, 50); ctx.fillStyle = "rgba(0, 0, 200, 0.5)"; ctx.fillRect (30, 30, 50, 50); } }
試したこと
MDN以外の色々なサイトのサンプルコードも5回ほど試していますが、同様の現象で終始してしまいます。
1度でも描画読み込みができなくなったら、再読み込みしても再表示できなくなってしまいます。
補足情報(FW/ツールのバージョンなど)
VSCode バージョン: 1.45.1
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/04 16:28
2020/06/04 19:16