【发布时间】:2010-09-18 20:45:42
【问题描述】:
我这里有一个相当大的代码......但幸运的是它根本不需要提及。它归结为......失败的东西?所以,最后这应该是绘制两个三角形(使用 AS3 图形)。它适用于一个,但当我在那里放第二个时,它看起来很奇怪。我对其进行了跟踪调试,我认为该错误在图形中 - 这是我绘制的实际点的输出:
DRAW
- POINT ( 50 , -50 )
- POINT ( -50 , 50 )
- POINT ( 50 , 50 )
DRAW
- POINT ( -50 , -50 )
- POINT ( 50 , -50 )
- POINT ( -50 , 50 )
(x, y),两个三角形。这将导致一种颜色的正方形(这些三角形是一种颜色),或者如果我要更改颜色,可能会导致正方形分成两半。
会...不会。
相反,我得到了这个:
OR(这很奇怪),当我切换三角形的绘制顺序时:
...
知道发生了什么吗? 我在另一个论坛上读过,应该在绘制每个形状之前和之后调用函数 beginFill 和 endFill - 显然这就是我在查看之前所做的 - 否则颜色不会有所不同。那么 - 有什么想法吗?
编辑:
图形调用如下所示:
for (var vi:int = 0; vi < triangles.length; vi++){
gfx.beginFill(0xFF0000, 0.5 + (0.5 * vi));
trace("DRAW");
trace("- POINT ( " + triangles[vi].points[0].x + " , " + triangles[vi].points[0].y + " )");
trace("- POINT ( " + triangles[vi].points[1].x + " , " + triangles[vi].points[1].y + " )");
trace("- POINT ( " + triangles[vi].points[2].x + " , " + triangles[vi].points[2].y + " )");
gfx.lineTo(triangles[vi].points[0].x, triangles[vi].points[0].y);
gfx.lineTo(triangles[vi].points[1].x, triangles[vi].points[1].y);
gfx.lineTo(triangles[vi].points[2].x, triangles[vi].points[2].y);
gfx.lineTo(triangles[vi].points[0].x, triangles[vi].points[0].y);
gfx.endFill();
}
【问题讨论】:
-
对 Graphics 对象的实际调用会有所帮助。
-
添加了它们...这是一个实际的错误还是?
标签: actionscript-3 graphics vector-graphics