2

我想画线,就像图形 API 一样,只是它将由给定纹理的块组装而成(“lineChunk.png”)

该块将很小,以允许在需要时通过线的路径旋转它。

目的是让用户使用 mouseMove 创建带纹理的线条。

我试图让它“手动”,但是当快速绘制时,两点之间的距离很大,因此需要使用 while 循环来缩小差距,这会显着减慢速度。

'graphics.lineBitmapStyle' 没有帮助,也没有达到这个目的。

有什么建议么 ?

4

2 回答 2

3

设置图形线型为:

lineBitmapStyle(bitmapData);

这指定了绘制线条时用于线条笔划的位图。

图形的 ActionScript 3.0 参考

线条位图样式

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);
            /* ... */
        }

    }
}
于 2012-06-24T19:41:18.280 回答
1

好的,所以最好的方法是创建示例纹理的单个 Bitmap 实例,然后创建另一个空的 Bitmap 作为您的画布。

使用循环进行常规钻孔以填补2个点之间的缺失间隙,并使用Bitmap.Draw在每次转换后的单个纹理Bitmap时绘制。

它工作得很好。

于 2012-12-27T15:20:52.130 回答