Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flash as3中的完美线绘制_Flash_Actionscript 3_Actionscript_Line_Raster - Fatal编程技术网

Flash as3中的完美线绘制

Flash as3中的完美线绘制,flash,actionscript-3,actionscript,line,raster,Flash,Actionscript 3,Actionscript,Line,Raster,我正在用as3制作一个街机游戏,我想画像素线。我正在将像素“手工”(不是用flash的lineTo或任何东西)绘制到bitmapdata对象上 但线条看起来并不十分正确,当缩小时,某些部分的线条渲染为2像素厚。然而,通过缩放它,很明显,该算法是好的,它不会使像素加倍。改变质量似乎不会改变任何事情。你知道我怎样才能得到像素级的完美线条吗 g=new BitmapData(w,h,false,0x000000); var bmp:Bitmap=new Bitmap(g); addChild(bmp)

我正在用as3制作一个街机游戏,我想画像素线。我正在将像素“手工”(不是用flash的lineTo或任何东西)绘制到bitmapdata对象上

但线条看起来并不十分正确,当缩小时,某些部分的线条渲染为2像素厚。然而,通过缩放它,很明显,该算法是好的,它不会使像素加倍。改变质量似乎不会改变任何事情。你知道我怎样才能得到像素级的完美线条吗

g=new BitmapData(w,h,false,0x000000);
var bmp:Bitmap=new Bitmap(g);
addChild(bmp);
//...
Util.drawLine(x1,y1,x2,y2,0xFFFFFF,g);


该算法是不相关的,因为我知道,从它的放大不是真的加倍,因为它的绘制位图,它必须以像素增量绘制。但如果我没有弄错的话,它只是《flash》中列出的第二个版本的as3版本,《flash》中的行是带有笔划且没有填充的路径。所以问题是路径是精确的像素值,但是笔划被分成两行(一左一右),每行0.5像素宽(或者我们知道的2个实际像素宽0.5 alpha),我认为移动直线+0.5将解决问题。

好的,我修复了它。浏览器正在缩放flash

stage.scaleMode=StageScaleMode.NO_SCALE


这是消除这些伪影所需要的一切。

您能提供缩小与放大的屏幕截图吗?还提供Util.drawLine的代码。缩小是什么意思?在as3中使用缩放功能,或者在浏览器中使用缩放功能?如果我在精灵或movieclips中使用lineTo,则会出现这种情况,但我会手动渲染位图。