0

このページにはすでに 3 つのコンテキストがあります。ここにコンテキスト 2 のこのセクションがあり、一部のテキストに影を付けています。しかし、それはコンテキスト2の他のすべてにも影を落としています.コンテキスト内のものを分離する方法はありますか? それとも、このテキストのためだけに別のコンテキストを作成し、次にやりたいことのために別のコンテキストを作成する必要がありますか?

drawArc(ctx2, 15, 30, "white", 0, 360);
ctx2.fillStyle = "rgb(80,80,80)";
ctx2.font = '24px sans-serif';
ctx2.shadowColor = "gray";
ctx2.shadowOffsetX = 2;
ctx2.shadowOffsetY = 2;
text = 'whateva';
ctx2.fillText(text, 50, 50);
4

2 に答える 2

1

特定の一時的な目的 (シャドウイングなど) でコンテキストを変更する場合は、一時的なコンテキストの変更を context.save() と context.restore() でラップするだけです。

次に、一時的なコンテキストの変更は context.restore(); で自動的に元に戻されます。

// save ctx2 in its current state
ctx2.save()

drawArc(ctx2, 15, 30, "white", 0, 360);
ctx2.fillStyle = "rgb(80,80,80)";
ctx2.font = '24px sans-serif';
ctx2.shadowColor = "gray";
ctx2.shadowOffsetX = 2;
ctx2.shadowOffsetY = 2;
text = 'whateva';
ctx2.fillText(text, 50, 50);

// return ctx2 to its pre-modified state
ctx2.restore();
于 2013-07-06T03:31:19.770 に答える
0

テキストの前にすべてを描画し、テキストを描画する直前に影を設定してからテキストを描画しようとしましたか?

于 2013-07-06T03:14:50.523 に答える