试试这个 - 根据需要调整 lineWidth:
function drawWave(amp:int, freq:int):void
{
var lineWidth:Number = 10;
var shape:Shape = new Shape();
var g:Graphics = shape.graphics;
g.lineStyle(lineWidth, 0xFF0000);
for (var i:int = 0; i < stage.stageWidth; i++)
{
var ang:Number = 2 * Math.PI * freq * i/stage.stageWidth;
var ypos:Number = yaxis - amp * Math.sin(ang);
if (i==0)
g.moveTo(i, ypos);
else
g.lineTo(i, ypos);
}
bmd.draw(shape);
}
将图形绘制到 Shape 对象而不是 BitmapData - 因此您可以利用它提供的抗锯齿功能。然后将整个内容复制到 BitmapData。
有关调整线条外观的更多选项,请参阅lineStyle(..) 的文档
编辑:
如果你坚持只使用 BitmapData,你可以试试这个:
bmd.drawRect(new Rectangle(i-WIDTH*0.5, yaxis-amp*Math.sin(ang)-HEIGHT*0.5, WIDTH, HEIGHT), 0xff0000);
根据需要替换 WIDTH 和 HEIGHT ,它将绘制矩形而不是单个像素 - 给出更粗的线,但我想不是很漂亮