2

グラフィックス API と同じように線を描画したいのですが、特定のテクスチャ ("lineChunk.png") のチャンクを組み立てるだけです。

チャンクは、必要に応じてラインのパスによって回転できるように小さくなります。

目的は、ユーザーが mouseMove を使用してテクスチャ付きの線を作成できるようにすることです。

「手動」で作成しようとしましたが、高速で描画すると 2 点間の距離が非常に大きくなるため、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

わかりました。最善の方法は、サンプル テクスチャの単一のビットマップ インスタンスを作成し、キャンバスとなる別の空のビットマップを作成することです。

ループを使用して通常のドリルを実行して、2 つのポイント間の不足しているギャップを埋め、Bitmap.Draw を使用して、単一のテクスチャ ビットマップが変換されるたびに描画します。

それはかなりうまくいきます。

于 2012-12-27T15:20:52.130 に答える