2012-04-05 69 views
2

我在使用Spark:Path在Flex中繪製路徑。減去(遮罩?)一個圓形的路徑

我想從這個路徑減去一個圓形,如下圖所示:

enter image description here

(路徑爲黑色和寬)

任何想法?

我嘗試使用Shape對象創建一個遮罩,但無法完全設法創建一個具有圓孔的遮罩。

回答

8

找到它。

不涉及任何口罩。

我把Path和包裹Group周圍:

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

我設置blendMode爲「層」和後添加一個橢圓用的BlendMode路徑erase

+1

不錯的flex-y解決方案。 – shanethehat 2012-04-05 14:26:34

+0

今天我學到了一些新東西。不知道這些混合模式。 – RIAstar 2012-04-05 14:35:13

2

你並不需要使用這種面膜,只需使用Graphics類的curveTo()方法:

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(); 

它給你:

enter image description here

這顯然不是使用你的確切尺寸,但是展示了原理。

+0

我不畫與形狀 - 我只是想掩蓋它。我的路徑對象是一個Spark:Path,它需要是一個Spark:Path,因爲我要爲它添加過濾器等等。所以我有了這個Path對象,我想在這個對象中以圓形形狀「咬」 。希望現在更清楚。 – 2012-04-05 14:01:37

+0

@gigantt - 我不太確定任何有關Flex的細節,但更籠統地說,您仍然可以使用上面的代碼,使用Path的尺寸來設置形狀的尺寸。然後將此形狀作爲蒙版應用於您的路徑。希望這也適用於Spark:Path。 – shanethehat 2012-04-05 14:12:01