2012-04-05 3 views
2

Ich zeichne einen Pfad in Flex mit Spark: Path.Subtrahieren (wegmasken?) Einen Pfad durch eine Kreisform

Ich möchte eine Kreisform von diesem Weg subtrahieren, wie im folgenden Bild:

enter image description here

(Der Weg ist schwarz und breit)

Irgendwelche Ideen?

Ich habe versucht, eine Maske mit einem Shape-Objekt zu erstellen, konnte aber keine Maske erstellen, die ein kreisförmiges Loch enthält.

Antwort

8

Es gefunden.

Keine Masken beteiligt.

nahm ich die Path und wickelte ein Group drum herum:

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

ich die blendMode auf „Ebene“ gesetzt und hinzugefügt, um eine Ellipse nach den Pfad mit blendmode erase

+1

Schöne Flex-y-Lösung. – shanethehat

+0

Ich habe heute etwas Neues gelernt. Wusste über keinen dieser Mischmodi. – RIAstar

2

Sie brauchen nicht eine Maske für diese zu verwenden, benutzen Sie einfach die curveTo() Methode der Graphics-Klasse:

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

Welche gibt Ihnen:

enter image description here

Dies ist offensichtlich nicht der Fall ist Verwenden Sie Ihre genauen Abmessungen, aber zeigt das Prinzip.

+0

ich nicht bin Zeichnung mit Shape - ich versuche nur damit zu maskieren. Mein Pfadobjekt ist ein Spark: Path, und es muss ein Spark sein: Path, weil ich ihm Filter hinzufüge usw. Ich habe also dieses Path-Objekt, aus dem ich einen "Biss" in einer kreisförmigen Form machen möchte . Hoffe es ist jetzt klarer. –

+0

@gigantt - Ich bin nicht so sicher über irgendwelche Flex-bezogenen Besonderheiten, aber allgemeiner gesagt können Sie den obigen Code verwenden, indem Sie die Dimensionen Ihres Pfades verwenden, um die Abmessungen der Form festzulegen. Dann wenden Sie diese Form als Maske auf Ihren Pfad an. Hoffentlich würde das auch mit einem Funken funktionieren: Pfad. – shanethehat