Leinwand Klar in Paper.js
Weiß wer, der beste Weg, um klar eine Leinwand mit paper.js
Ich habe versucht, die regelmäßige Leinwand clearing-Methoden, aber Sie scheinen nicht zu arbeiten mit paper.js
Html
<canvas id="myCanvas" style="background:url(images/graphpaper.jpg); background-repeat:no-repeat" height="400px" width="400px;"></canvas>
<button class="btn btn-default button" id="clearcanvas" onClick="clearcanvas();" type="button">Clear</button>
Javascript/Paperscript
<script type="text/paperscript" canvas="myCanvas">
//Create a Paper.js Path to draw a line into it:
tool.minDistance = 5;
var path;
var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
function onMouseDown(event) {
//Create a new path and give it a stroke color:
path = new Path();
path.strokeColor = 'red';
path.strokeWidth= 3;
path.opacity="0.4";
//Add a segment to the path where
//you clicked:
path.add(event.point, event.point);
}
function onMouseDrag(event) {
//Every drag event, add a segment
//to the path at the position of the mouse:
path.add(event.point, event.point);
}
</script>
Du musst angemeldet sein, um einen Kommentar abzugeben.
Regelmäßigen clearing-funktioniert nicht, weil paper.js unterhält eine Szene Graphen und kümmert sich um die Zeichnung für Sie. Wenn Sie möchten, deaktivieren Sie alle Elemente, die Sie erstellt haben, in ein Projekt zu löschen, muss man die eigentlichen Elemente:
project.activeLayer.removeChildren();
funktioniert, solange alle Ihre Elemente in einer Ebene. Es ist auchproject.clear()
entfernt alles, einschließlich der Ebene.Den Fall, dass jemand kommt, nach einer Antwort zu suchen mit wenig Erfahrung in Javascript, habe ich ein einfaches Beispiel :
1) Jürg Lehni erwähnt
project.activeLayer.removeChildren();
kann verwendet werden, entfernen Sie alle Elemente innerhalb der aktiven Schicht.2) entsprechend die Reinigung zu nennen
paper.view.draw();
.c.width = c.width; ctx.clearRect(0,0,c.width,c.height);
sollte ein gutes Fangnetz, wenn Sie habe es nicht ausprobiert.Aber Vorsicht - setzen Breite des Grafikbereichs wird zurücksetzen der Leinwand Zustand inklusive alle verwendeten Transformationen.
Einer schnellen google hat mich zu https://groups.google.com/forum/#!Thema/paperjs/orL7YwBdZq4, die angibt, ein weiterer (mehr paper.js bestimmte) Lösung:
project.activeLayer.removeChildren();
können Sie
project.activeLayer.removeChildren();
für klare ganze Ebene,oder Sie können fügen Sie Ihre neue Wege der Gruppe, und entfernen Sie alle Kinder in der Gruppe