2

次のコードを試してみると:

g.beginFill(0xFF0000);
g.drawRect(0, 0, 50, 50);
g.drawRect(25, 25, 50, 50);
g.endFill();

2 つの重なった赤い四角が描かれると思うでしょう。ただし、そうではありません。完全に透明になった重複領域を除いて、2 つの赤い正方形が描画されます。

これを回避する方法はありますか?

承認後の回答:

ありがとうクリストフ・ヘレマン!コードを次のように変更します。

g.beginFill(0xFF0000);
g.drawRect(0, 0, 50, 50);
g.endFill();
g.beginFill(0xFF0000);
g.drawRect(25, 25, 50, 50);
g.endFill();

意図したとおりに機能しました!これが「意図した動作」なのか、それとも実際のバグなのか知りたいです!

4

2 に答える 2

4

endFill() より前のすべての呼び出しは、描画するポリゴンのポイントを格納し、endFill() が呼び出されるとそれらを接続します。例のコードには重複部分があるため、ポリゴンの実際の線が描画されるときに除外されます。これが Flash Player の意図した動作なのか、バグなのか、実際にはわかりません。

これを解決するには、新しい四角形を描画する前に beginFill() への新しい呼び出しを追加するだけです。

g.beginFill(0xFF0000);
g.drawRect(0, 0, 50, 50);
g.beginFill(0xFF0000);
g.drawRect(25, 25, 50, 50);
g.endFill();
于 2009-02-24T19:40:05.413 に答える
0

2 番目の塗りつぶしを適用するために 2 番目のグラフィック オブジェクトを作成する必要はありませんか? 2 つの交差する四角形ではなく、実際には 1 つの奇妙な形のグラフィック オブジェクトがあるに違いありません。

于 2009-02-24T19:24:15.280 に答える