Subtract (mask away?) a path by a circle shape

2019-07-16 06:12发布

I'm drawing a path in Flex using Spark:Path.

I want to subtract a circle shape from this path, as in the following image:

enter image description here

(The path is black and wide)

Any ideas?

I tried creating a mask using a Shape object but couldn't quite manage to create a mask that has a circular hole in it.

2条回答
Bombasti
2楼-- · 2019-07-16 06:28

Found it.

No masks involved.

I took the Path and wrapped a Group around it:

<s:Group blendMode="layer">
    <s:Path id="connector" ... />
    <s:Ellipse id="hole" blendMode="erase">

I set the blendMode to "layer" and added an ellipse after the path with blendMode erase

查看更多
别忘想泡老子
3楼-- · 2019-07-16 06:48

You don't need to use a mask for this, just use the curveTo() method of the Graphics class:

var shape1:Shape = new Shape();
shape1.graphics.beginFill(0x000000);
shape1.graphics.moveTo(0,0);
shape1.graphics.lineTo(80,0);
shape1.graphics.curveTo(110,30,140,0);
shape1.graphics.lineTo(300,0);
shape1.graphics.lineTo(300,20);
shape1.graphics.lineTo(0,20);
shape1.graphics.lineTo(0,0);
shape1.graphics.endFill();

Which gives you:

enter image description here

This is obviously not using your exact dimensions, but demonstrates the principle.

查看更多
登录 后发表回答