2

如果您尝试以下代码:

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

你会认为它会绘制 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 播放器的预期行为还是错误。

要解决这个问题,只需在绘制新矩形之前添加对 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

您不需要创建第二个图形对象来应用第二个填充吗?我敢打赌,您确实有一个形状奇特的图形对象,而不是两个相交的矩形。

于 2009-02-24T19:24:15.280 回答