私は2つのキャンバスをお互いに配置しようとしていますが、同時にこれを中心にしていますが、1つのキャンバスがフレーム外であると思われます。2つのキャンバスを重ね合わせて配置するCSS
CSS:
body { background-color: #000000; text-align: center; margin: 0px; padding: 0px; width:100%; height:100%; }
* { margin:0; padding:0; }
canvas { display:block; padding: 0; margin: auto; position: absolute; top: 0; bottom: 0; left: 0; right: 0; }
cnv1 { z-index: 2; }
cnv2 { z-index: 1; }
HTML:
<canvas id="cnv1">U no do HTML5, fix.</canvas>
<canvas id="cnv2">U no do HTML5, fix.</canvas>
Javascriptを:
var cnv = document.getElementById('cnv1')
var ctx = cnv.getContext('2d');
var cnv2 = document.getElementById('cnv2')
var ctx2 = cnv2.getContext('2d');
私は今
ctx.font = "30px Arial";
ctx.fillStyle = "red";
ctx.fillText('images loaded and ready to go', 180, 45);
のようなものを書くしようとした場合
それは表示されません。 ctx2への書き込みは行います。
あなたは2つのキャンバスをしたいなぜ私が聞いてもいいですか?あなたのアプリケーションを正しく設計するなら、2キャンバスは必要ありません... Javascriptはとにかくシングルスレッドです。与えられたキャンバスに自分自身を描くエンティティを持つだけです。バックグラウンドにあるエンティティを最初に描画し、次に他のエンティティを最後に描画します。 – Tschallacka
パフォーマンスが向上しました。別のキャンバスに背景を配置することで、キャンバス全体を消去してから、シェイプや画像を再描画するときに、すべてのループで背景を再描画する必要はありません。 今度は、その領域で再描画するたびに別のキャンバス上に非常に小さな矩形をクリアします。 このようにして、バッテリーの電力を節約します(モバイルアプリ用)。 –