0

私は Actionscript 3 にやや慣れていません。フラッシュで svg エクスポート/インポートを構築しており、プレビューを svg と同じように動作させる必要があります。フラッシュでは、パスが重なっている場合は削除されます。エリア全体を埋めるにはどうすればよいですか?

パスはこれで作成されます:

object.graphics.moveTo(xpos[i], ypos[i]);
object.graphics.lineTo(px, py);

結果はここに画像の説明を入力

4

1 に答える 1

3

これは、グラフィックス パスのワインディングが原因です。

グラフィックパスワインディング

ワインディング ルールの定義
flash.diplay.GraphicsPathWinding

Flash では、デフォルトのワインディング ルールは奇数偶数です。

を使用して作成されたグラフィックの場合は、drawPath にワインディングをdrawPath追加GraphicsPathWinding.NON_ZEROします。

import flash.display.GraphicsPathWinding;

graphics.drawPath(new <int>[], new <Number>[], GraphicsPathWinding.NON_ZERO);

lineTo()drawCircle()、またはなどの便利なメソッドを使用して描画されたグラフィックスの場合、次のように、描画された形状ごとにdrawRect()次のことができます。beginFill()endFill()

ここに画像の説明を入力

var g:Graphics = graphics;

g.beginFill(0x123456)
g.drawRect(100, 100, 50, 50);
g.endFill();

g.beginFill(0x123456)
g.drawRect(125, 125, 50, 50);
g.endFill();

それ以外の:

偶奇

var g:Graphics = graphics;

g.beginFill(0x123456)
g.drawRect(100, 100, 50, 50);
g.drawRect(125, 125, 50, 50);
g.endFill();
于 2012-07-03T04:28:38.663 に答える