这个非常简单的绘图命令创建了一个11x11像素的红色矩形:
_sp.graphics.lineStyle( 1, 0xFF0000, 1, true, LineScaleMode.NORMAL, CapsStyle.NONE, JointStyle.MITER, 3 );
_sp.graphics.drawRect( 10, 10, 10, 10 );让它变成10x10像素的秘诀是什么?
如果我用相同的drawRect参数填充一个矩形,结果是10x10像素:
_sp.graphics.beginFill( 0xFF0000, 1 );
_sp.graphics.drawRect( 10, 10, 10, 10 );
_sp.graphics.endFill( );我不喜欢使用drawRect( 10,10,9,9 );因为这看起来像是一个hack。
发布于 2009-09-14 06:44:44
当您绘制一个10x10的矩形时,就像在您的第二个代码片段中一样,Flash会绘制您所期望的内容。但是在您的第一个代码片段中,您在一个10x10矩形周围绘制了一个矢量边。从理论上讲,Flash可以通过绘制围绕10x10矩形的12x12边,或绘制与10x10矩形重叠的10x10矩形(从而围绕8x8矩形)来满足这一要求。在实践中,Flash拆分了不同之处,选择在两条边围绕形状,并在另两条边重叠形状。但即使这样,如果你开始在半像素上绘制,你可能会发现行为略有不同,因为矢量绘制是一项复杂的业务,而Flash的渲染器是高度优化的。
要对绘制线条的位置进行像素级控制,应使用moveTo()和lineTo()分别绘制线条。
https://stackoverflow.com/questions/1419592
复制相似问题