我想画线,就像图形 API 一样,只是它将由给定纹理的块组装而成(“lineChunk.png”)
该块将很小,以允许在需要时通过线的路径旋转它。
目的是让用户使用 mouseMove 创建带纹理的线条。
我试图让它“手动”,但是当快速绘制时,两点之间的距离很大,因此需要使用 while 循环来缩小差距,这会显着减慢速度。
'graphics.lineBitmapStyle' 没有帮助,也没有达到这个目的。
有什么建议么 ?
我想画线,就像图形 API 一样,只是它将由给定纹理的块组装而成(“lineChunk.png”)
该块将很小,以允许在需要时通过线的路径旋转它。
目的是让用户使用 mouseMove 创建带纹理的线条。
我试图让它“手动”,但是当快速绘制时,两点之间的距离很大,因此需要使用 while 循环来缩小差距,这会显着减慢速度。
'graphics.lineBitmapStyle' 没有帮助,也没有达到这个目的。
有什么建议么 ?
设置图形线型为:
lineBitmapStyle(bitmapData);
这指定了绘制线条时用于线条笔划的位图。
package
{
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.Graphics;
import flash.display.Loader;
import flash.display.LoaderInfo;
import flash.display.Sprite;
import flash.events.Event;
import flash.net.URLRequest;
public class X extends Sprite
{
protected var bitmapData:BitmapData;
protected var loader:Loader = new Loader();
public function X()
{
super();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler);
loader.load(new URLRequest("lineChunk.png"));
}
protected function completeHandler(event:Event):void
{
bitmapData = Bitmap(LoaderInfo(event.target).content).bitmapData;
var g:Graphics = graphics;
g.lineStyle(10);
g.lineBitmapStyle(bitmapData);
g.moveTo(0, 0);
g.lineTo(100, 100);
/* ... */
}
}
}
好的,所以最好的方法是创建示例纹理的单个 Bitmap 实例,然后创建另一个空的 Bitmap 作为您的画布。
使用循环进行常规钻孔以填补2个点之间的缺失间隙,并使用Bitmap.Draw在每次转换后的单个纹理Bitmap时绘制。
它工作得很好。