कैसे पुनर्वसन के लिए कैनवास को साफ़ करें


1012

कंपोजिट ऑपरेशन के साथ प्रयोग करने और कैनवास पर चित्र बनाने के बाद अब मैं चित्रों और कंपोज़िंग को हटाने की कोशिश कर रहा हूँ। मैं यह कैसे करु?

मुझे अन्य छवियों को फिर से दिखाने के लिए कैनवास को साफ करने की आवश्यकता है; यह कुछ समय के लिए चल सकता है इसलिए मुझे नहीं लगता कि हर बार एक नई आयत खींचना सबसे कुशल विकल्प होगा।

जवाबों:


1292
const context = canvas.getContext('2d');

context.clearRect(0, 0, canvas.width, canvas.height);

42
ध्यान दें कि clearRectआपके लिए या तो एक अनियंत्रित संदर्भ होना चाहिए, या अपनी वास्तविक सीमाओं का ध्यान रखें।
फ्रॉग्ज

7
आगे ध्यान दें कि कैनवास की चौड़ाई को स्थापित करने के लिए) इसे एक अलग मूल्य पर सेट करने की आवश्यकता है और फिर वेबकिट संगतता के लिए फिर से , और बी) यह आपके संदर्भ परिवर्तन को रीसेट करेगा ।
Phrogz

45
चौड़ाई चाल का उपयोग न करें। यह एक गंदा हैक है। जावास्क्रिप्ट जैसी उच्च स्तरीय भाषा में, जो आप चाहते हैं, वह आपके इरादों को सबसे अच्छा करने के लिए है, और फिर निचले स्तर के कोड को उन्हें पूरा करने दें। खुद को चौड़ाई निर्धारित करना आपके सच्चे इरादे को नहीं बताता है , जो कि कैनवास को साफ करना है।
andrrk

22
एक पूरी तरह से मामूली सुझाव है लेकिन मैं सुझाव दूंगा context.clearRect(0, 0, context.canvas.width, context.canvas.height)। यह प्रभावी रूप से एक ही चीज है, लेकिन एक कम निर्भरता (2 के बजाय 1 चर)
gman

6
इस उत्तर के अधिक हाल के पाठकों के लिए: इस बात का ध्यान रखें कि यह उत्तर संशोधित किया गया था और यह कि ऊपर की कुछ टिप्पणियाँ अब लागू नहीं होती हैं
डेवस्लैब

719

उपयोग: context.clearRect(0, 0, canvas.width, canvas.height);

यह संपूर्ण कैनवास को साफ़ करने का सबसे तेज़ और सबसे वर्णनात्मक तरीका है।

प्रयोग नहीं करें: canvas.width = canvas.width;

canvas.widthरीसेटिंग सभी कैनवस स्टेट (जैसे ट्रांसफ़ॉर्मेशन, लाइनविद, स्ट्रोकसैल, इत्यादि) को रीसेट करता है, यह बहुत धीमा है (क्लियररिट की तुलना में), यह सभी ब्राउज़रों में काम नहीं करता है, और यह वर्णन नहीं करता है कि आप वास्तव में क्या करने की कोशिश कर रहे हैं।

रूपांतरित निर्देशांक से निपटना

आप परिवर्तन मैट्रिक्स संशोधित है (उदाहरण के लिए का उपयोग कर scale, rotateया translate) तो context.clearRect(0,0,canvas.width,canvas.height)संभावना कैनवास के पूरे दृश्य भाग स्पष्ट नहीं होंगे।

समाधान? कैनवास को साफ करने से पहले परिवर्तन मैट्रिक्स को रीसेट करें:

// Store the current transformation matrix
context.save();

// Use the identity matrix while clearing the canvas
context.setTransform(1, 0, 0, 1, 0, 0);
context.clearRect(0, 0, canvas.width, canvas.height);

// Restore the transform
context.restore();

संपादित करें: मैंने अभी कुछ प्रोफाइलिंग की है और (क्रोम में) यह ट्रांसफ़ॉर्म को रीसेट किए बिना 300x150 (डिफ़ॉल्ट आकार) कैनवास को साफ़ करने के लिए लगभग 10% तेज है। जैसे-जैसे आपके कैनवास का आकार बढ़ता है यह अंतर गिरता है।

यह पहले से ही अपेक्षाकृत नगण्य है, लेकिन ज्यादातर मामलों में आप समाशोधन कर रहे हैं की तुलना में आप काफी अधिक ड्राइंग करेंगे और मेरा मानना ​​है कि यह प्रदर्शन अंतर अप्रासंगिक है।

100000 iterations averaged 10 times:
1885ms to clear
2112ms to reset and clear

4
@YumYumYum: स्पष्ट () एक मानक कार्य है? यह प्रतीत नहीं होता है।
नोबार

7
ध्यान दें कि आप इसके बजाय स्थानीय canvasचर की आवश्यकता को हटा सकते हैं ctx.canvas
आकर्षित नोक

1
@DrewNoakes, अच्छी बात है, लेकिन मैं लगभग हमेशा गति के प्रयोजनों के लिए अलग चर का विकल्प चुनता हूं। यह बेहद मामूली है, लेकिन मैं अक्सर इस्तेमाल की जाने वाली संपत्तियों (विशेष रूप से एक एनीमेशन लूप के अंदर) को अलियास करके समय से बचने की कोशिश करता हूं।
प्रेस्टाटुल

अलेक्जेंडर के डेमो ने टूटी हुई छवि लिंक के कारण अब और काम नहीं किया: फिक्स्ड: jsfiddle.net/Ktqfs/50
डोमिनो

एक और तरीका है परिवर्तन मैट्रिक्स संशोधन की स्थिति में पूरे कैनवास स्पष्ट करने के लिए बस परिवर्तनों का ट्रैक रखने और उन्हें अपने तक ही लागू करने के लिए है canvas.widthऔर canvas.heightजब समाशोधन। मैंने परिवर्तन को रीसेट करने की तुलना में रनटाइम अंतर पर कोई संख्यात्मक विश्लेषण नहीं किया है, लेकिन मुझे संदेह है कि यह थोड़ा बेहतर प्रदर्शन होगा।
नैनोवेयर छिपकली

226

यदि आप रेखाएँ खींच रहे हैं, तो सुनिश्चित करें कि आप भूल न जाएँ:

context.beginPath();

अन्यथा लाइनें साफ नहीं होंगी।


10
मैं जानता हूँ कि यह यहाँ थोड़ी देर के लिए किया गया है और यह सब इस समय के बाद टिप्पणी करने के लिए मेरे लिए मूर्खतापूर्ण शायद है, लेकिन इस एक वर्ष के लिए मुझे परेशान कर रहा है ... कॉल beginPathजब आप एक नया पथ शुरू , कि यह न मानें कि केवल आपके क्योंकि आप अपने मौजूदा रास्ते को साफ करना चाहते हैं और साथ ही साथ कैनवास को साफ़ करना चाहते हैं! यह एक भयानक अभ्यास होगा और ड्राइंग को देखने का एक पिछड़ा तरीका है।
प्रेस्टाटूल

क्या होगा अगर आप बस हर चीज के कैनवास को साफ करना चाहते हैं। आओ हम कहते हैं कि आप एक गेम बना रहे हैं और आपको स्क्रीन को हर सेकंड के कई सौवें हिस्से में फिर से बनाना होगा।

1
@JoseQuinones, beginPathआपके कैनवास से कुछ भी साफ़ नहीं करता है, यह पथ को रीसेट करता है ताकि आप आकर्षित करने से पहले पिछली पथ प्रविष्टियाँ निकाल दें। आपको शायद इसकी आवश्यकता थी, लेकिन एक ड्राइंग ऑपरेशन के रूप में, एक समाशोधन ऑपरेशन नहीं। स्पष्ट, फिर शुरू और आकर्षित, स्पष्ट नहीं है और शुरू, फिर आकर्षित। क्या फर्क पड़ता है? एक उदाहरण के लिए यहां देखें: w3schools.com/tags/canvas_beginpath.asp
प्रेस्टा जूल

1
यह समय के साथ अनुभव किए गए मेरे एनीमेशन की मंदी को हल करता है। मैंने हर चरण पर ग्रिड लाइनों को फिर से तैयार किया, लेकिन पिछले चरण से लाइनों को साफ किए बिना।
जॉर्ज पाट्सचेइडर

118

दूसरों ने पहले ही सवाल का जवाब देने के लिए एक उत्कृष्ट काम किया है, लेकिन यदि clear()संदर्भ वस्तु पर एक सरल विधि आपके लिए उपयोगी होगी (यह मेरे लिए था), तो यह कार्यान्वयन है जो मैं यहां उत्तरों के आधार पर उपयोग करता हूं:

CanvasRenderingContext2D.prototype.clear = 
  CanvasRenderingContext2D.prototype.clear || function (preserveTransform) {
    if (preserveTransform) {
      this.save();
      this.setTransform(1, 0, 0, 1, 0, 0);
    }

    this.clearRect(0, 0, this.canvas.width, this.canvas.height);

    if (preserveTransform) {
      this.restore();
    }           
};

उपयोग:

window.onload = function () {
  var canvas = document.getElementById('canvasId');
  var context = canvas.getContext('2d');

  // do some drawing
  context.clear();

  // do some more drawing
  context.setTransform(-1, 0, 0, 1, 200, 200);
  // do some drawing with the new transform
  context.clear(true);
  // draw more, still using the preserved transform
};

6
यह एक महान कार्यान्वयन है। मैं मूल प्रोटोटाइप को बढ़ाने में पूरी तरह से समर्थन करता हूं, लेकिन आप यह सुनिश्चित करना चाह सकते हैं कि "स्पष्ट" इसे असाइन करने से पहले परिभाषित नहीं किया गया है - मैं अभी भी किसी दिन मूल कार्यान्वयन की उम्मीद कर रहा हूं। :) क्या आप जानते हैं कि व्यापक रूप से ब्राउज़र CanvasRenderingContext2D का समर्थन करते हैं और इसे "लिखने योग्य" छोड़ देते हैं?
प्रेस्टेयूल

प्रतिक्रिया के लिए धन्यवाद @Prestaul - भी, कोई भी ब्राउज़र आपको इस तरह से जावास्क्रिप्ट ऑब्जेक्ट्स को विस्तारित करने से नहीं रोकना चाहिए।
जोनाथनके

@JonathanK, मैं परिवर्तन को रीसेट किए बिना और उसके बीच समाशोधन के बीच प्रदर्शन अंतर की कुछ रूपरेखा देखना पसंद करूंगा। मैं अनुमान लगा रहा हूं कि यदि आप थोड़ा ड्राइंग कर रहे हैं तो अंतर स्पष्ट होगा लेकिन अगर आप जो ड्राइंग कर रहे हैं वह तुच्छ नहीं है, तो स्पष्ट कदम नगण्य है ... मुझे यह परीक्षण करना पड़ सकता है कि बाद में जब मेरे पास अधिक समय होगा :)
प्रेस्टुल

ठीक है, मैंने प्रोफाइलिंग की और मैं अपनी पोस्ट में विवरण जोड़ने जा रहा हूं।
प्रेस्टाटुल

35
  • Chrome इस पर अच्छी तरह से प्रतिक्रिया करता है: context.clearRect ( x , y , w , h );जैसा कि @ Pentium10 द्वारा सुझाया गया है, लेकिन IE9 इस निर्देश को पूरी तरह से अनदेखा करता है।
  • IE9 का जवाब लगता है: canvas.width = canvas.width;लेकिन यह लाइनों, आकृति, चित्रों और अन्य वस्तुओं को स्पष्ट नहीं करता है जब तक कि आप पहले चौड़ाई को बदलने के @ जॉन्स ऑलस्कोप के समाधान का उपयोग नहीं करते हैं।

तो अगर आपके पास एक कैनवास और संदर्भ इस तरह बनाया गया है:

var canvas = document.getElementById('my-canvas');
var context = canvas.getContext('2d');

आप इस तरह से एक विधि का उपयोग कर सकते हैं:

function clearCanvas(context, canvas) {
  context.clearRect(0, 0, canvas.width, canvas.height);
  var w = canvas.width;
  canvas.width = 1;
  canvas.width = w;
}

13
ध्यान दें कि केवल संदर्भ में और उपयोग करके विधि को सरल बनाया जा सकता है context.clearRect(0,0,context.canvas.width,context.canvas.height)
Phrogz

5
IE 9 को स्पष्ट रूप से कॉल का जवाब देना चाहिए ... (देखें: msdn.microsoft.com/en-us/library/ff975407(v=vs.85).aspx ) कैनवास को बदलने में जितना धीमा है, एकमात्र तरीका है आप धीमी गति से इसे दो बार बदल सकते हैं और स्पष्ट रूप में भी कॉल कर सकते हैं।
प्रेस्टीजुल

1
क्षमा करें, मुझे और अधिक स्पष्ट होना चाहिए ... यह विधि तब तक काम करेगी (जब तक आपने कोई रूपांतरण लागू नहीं किया है), लेकिन यह एक [धीमी] क्रूर बल तकनीक है जहां यह आवश्यक नहीं है। बस ClearRect का उपयोग करें क्योंकि यह सबसे तेज़ है और एक कैनवास कार्यान्वयन के साथ हर ब्राउज़र पर काम करना चाहिए।
प्रेस्टेयूल

1
मेरा मानना ​​है कि IE अभी भी पथ बफर में होने के कारण लाइनों को फिर से तैयार कर रहा है। मैं इस प्रारूप का उपयोग करता हूं और यह सही काम करता है। function clearCanvas(ctx) { ctx.beginPath(); ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height); }
डारेनम्बे

मैंने इससे पहले प्रत्येक और हर तरीके की कोशिश की ... और यह एकमात्र ऐसा काम था। मैं लाइनों, आयतों और पाठ के साथ क्रोम का उपयोग कर रहा हूं ... सोचा नहीं था कि ऐसा कुछ करना मुश्किल होगा जिसे बनाया जाना चाहिए! धन्यवाद!
एंथनी ग्रिग्स

26

यह 2018 है और अभी भी रिडरिंग के लिए पूरी तरह से स्पष्ट कैनवास के लिए कोई देशी तरीका नहीं है। कैनवास को पूरी तरह से साफ clearRect() नहीं करता है । गैर-भरण प्रकार के चित्र बाहर नहीं निकाले गए हैं (उदाहरण के लिए rect())

1. पूरी तरह से स्पष्ट कैनवास के बावजूद आप कैसे आकर्षित:

context.clearRect(0, 0, context.canvas.width, context.canvas.height);
context.beginPath();

पेशेवरों: स्ट्रोक को सुरक्षित रखता है, पूरक, पूरक आदि; कोई अंतराल नहीं;

विपक्ष: अनावश्यक अगर आप पहले से ही कुछ भी ड्राइंग से पहले शुरुआत का उपयोग कर रहे हैं

2. चौड़ाई / ऊंचाई हैक का उपयोग:

context.canvas.width = context.canvas.width;

या

context.canvas.height = context.canvas.height;

पेशेवरों: आईई विपक्ष के साथ काम करता है: स्ट्रोक स्ट्रोक सेट करें, काले रंग को भरें; laggy;

मैं सोच रहा था कि एक देशी समाधान मौजूद क्यों नहीं है। दरअसल, clearRect()सिंगल लाइन सॉल्यूशन के रूप में माना जाता है क्योंकि ज्यादातर उपयोगकर्ता beginPath()किसी भी नए रास्ते को खींचने से पहले करते हैं । हालांकि शुरुआतपथ का उपयोग केवल रेखाओं को खींचने के लिए किया जाना है और बंद रास्ते की तरह नहींrect().

यही कारण है कि स्वीकृत उत्तर से मेरी समस्या हल नहीं हुई और मैंने अलग-अलग हैक की कोशिश में घंटों बर्बाद कर दिया। लानत है आपको मोज़िला


मुझे लगता है कि यह सही उत्तर है, खासकर कैनवास खींचने के लिए। मैं शेष संदर्भ से पीड़ित था। कोई फर्क नहीं पड़ता कि मैं कैसे स्पष्ट कॉल करता हूं, जबकि startPath ने मदद की!
शाओ-कुई

20

X, y सह-निर्देशांक और कैनवस की ऊंचाई और चौड़ाई को पार करके क्लियरट्रैक विधि का उपयोग करें। ClearRect पूरे कैनवास को साफ़ करेगा:

canvas = document.getElementById("canvas");
ctx = canvas.getContext("2d");
ctx.clearRect(0, 0, canvas.width, canvas.height);

आप इसे केवल एक विधि में रख सकते हैं और इसे हर बार कॉल कर सकते हैं जिसे आप स्क्रीन को ताज़ा करना चाहते हैं, सही।

@ XXX.xxx plz अपने html में कैनवास की आईडी की जाँच करें और पहली पंक्ति के लिए समान का उपयोग करें (आईडी द्वारा तत्व प्राप्त करने के लिए)
Vishwas

14

यहाँ अच्छे उत्तर के एक टन हैं। एक और ध्यान दें कि कभी-कभी यह केवल कैनवास को आंशिक रूप से साफ़ करने के लिए मज़ेदार होता है। वह है, पिछली छवि को पूरी तरह से मिटाने के बजाय "फीका करना"। यह अच्छा ट्रेल्स प्रभाव दे सकता है।

यह आसान है। आपके बैकग्राउंड का रंग सफेद है:

// assuming background color = white and "eraseAlpha" is a value from 0 to 1.
myContext.fillStyle = "rgba(255, 255, 255, " + eraseAlpha + ")";
myContext.fillRect(0, 0, w, h);

मुझे पता है कि यह संभव है और मुझे आपके उत्तर से कोई समस्या नहीं है, मुझे आश्चर्य है, अगर आपके पास 2 ऑब्जेक्ट हैं जो आगे बढ़ रहे हैं, और आप केवल उनमें से एक को ट्रेल करना चाहते हैं, तो आप ऐसा कैसे करेंगे?
सुपर

यह एक अच्छा सौदा अधिक जटिल है। उस स्थिति में, आपको एक ऑफ-स्क्रीन कैनवास बनाना चाहिए, और प्रत्येक फ़्रेम आपके द्वारा वर्णित आंशिक-मिटा पद्धति का उपयोग करके उस कैनवास पर इच्छित वस्तुओं को खींचना चाहिए, और प्रत्येक फ़्रेम मुख्य कैनवास को 100% साफ़ करें, गैर-संरेखित ड्रा करें ऑब्जेक्ट्स, और फिर ड्राइमेज () का उपयोग करके मुख्य स्क्रीन पर ऑफ-स्क्रीन कैनवास को कंपोज करें। आपको छवियों के लिए उपयुक्त कुछ के लिए GlobalCompositeOperation सेट करना होगा। उदाहरण के लिए "बैकग्राउंड" एक हल्के बैकग्राउंड पर डार्क ऑब्जेक्ट्स के लिए अच्छा काम करेगा।
ओरियन एल्जेनिल

12

एक त्वरित तरीका है

canvas.width = canvas.width

Idk यह कैसे काम करता है लेकिन यह करता है!


वाह। यह वास्तव में काम करता है, आपको यह कैसे मिला?
zipzit

@ ज़िपिट क्विक ट्रिक मैं सामान्य क्लीयरिंग के बाद मध्यम.कॉम से नहीं मिला। :)
जैकब मॉरिस

1
मैं अपने बालों को बाहर निकालने की कोशिश कर रहा हूं कि यह क्यों काम करता है! साझा करने के लिए धन्यवाद!
aabbccsmith

क्या कोई समझा सकता है कि यह काम क्यों करता है और यहां तक ​​कि कैनवस भी। = = 0 काम भी करता है, इसके पीछे का विज्ञान क्या है?
पीवाईके

8

सीमाओं और मैट्रिक्स परिवर्तनों की परवाह किए बिना मैं इसका उपयोग करता हूं:

function clearCanvas(canvas) {
  const ctx = canvas.getContext('2d');
  ctx.save();
  ctx.globalCompositeOperation = 'copy';
  ctx.strokeStyle = 'transparent';
  ctx.beginPath();
  ctx.lineTo(0, 0);
  ctx.stroke();
  ctx.restore();
}

मूल रूप से, यह संदर्भ की वर्तमान स्थिति को बचाता है, और copyजैसा कि एक पारदर्शी पिक्सेल खींचता है globalCompositeOperation। फिर, पिछले संदर्भ स्थिति को पुनर्स्थापित करता है।


इससे मेरा काम बनता है...! धन्यवाद।
नोमान जेवेद

6

यह चार्ट में मेरे पीचार्ट के लिए काम करता है

<div class="pie_nut" id="pieChartContainer">
    <canvas id="pieChart" height="5" width="6"></canvas> 
</div>

$('#pieChartContainer').html(''); //remove canvas from container
$('#pieChartContainer').html('<canvas id="pieChart" height="5" width="6"></canvas>'); //add it back to the container

5

मैंने पाया है कि मैं जिन सभी ब्राउज़रों का परीक्षण करता हूं, उनमें से सबसे तेज़ तरीका वास्तव में सफ़ेद, या जो भी आप चाहें रंग भर सकते हैं। मेरे पास बहुत बड़ा मॉनीटर है और फुल स्क्रीन मोड में क्लीयर रेक्टिनेस एग्जिनेटली स्लो है, लेकिन फिल्ट्रेक्ट वाजिब है।

context.fillStyle = "#ffffff";
context.fillRect(0,0,canvas.width, canvas.height);

दोष यह है कि कैनवास अब पारदर्शी नहीं है।


4

वेबकिट में आपको चौड़ाई को एक अलग मूल्य पर सेट करने की आवश्यकता है, फिर आप इसे प्रारंभिक मूल्य पर वापस सेट कर सकते हैं



4

यह लिखने का एक सरल, लेकिन बहुत पठनीय तरीका नहीं है:

var canvas = document.getElementId('canvas');

// after doing some rendering

canvas.width = canvas.width;  // clear the whole canvas

2

मैं हमेशा उपयोग करता हूं

cxt.fillStyle = "rgb(255, 255, 255)";
cxt.fillRect(0, 0, canvas.width, canvas.height);

यह सबसे आसान तरीका है! खैर, मेरे लिए कम से कम।
जैक्स ओलिवर

1
context.clearRect(0,0,w,h)   

दिए गए आयत को RGBA मान के साथ भरें:
0 0 0 0: Chrome
0 0 0 255 के साथ: FF & Safari के साथ

परंतु

context.clearRect(0,0,w,h);    
context.fillStyle = 'rgba(0,0,0,1)';  
context.fillRect(0,0,w,h);  

आयत को
0 0 0 255 से भरें,
कोई बात नहीं!


1
Context.clearRect(starting width, starting height, ending width, ending height);

उदाहरण: context.clearRect(0, 0, canvas.width, canvas.height);



0

सबसे तेज़ तरीका:

canvas = document.getElementById("canvas");
c = canvas.getContext("2d");

//... some drawing here

i = c.createImageData(canvas.width, canvas.height);
c.putImageData(i, 0, 0); // clear context by putting empty image data

12
वाह ... किस ब्राउज़र में? मेरा (क्रोम 22 और OS X पर फ़ायरफ़ॉक्स 14) में आपका तरीका, अब तक का सबसे धीमा विकल्प है। jsperf.com/canvas-clear-speed/9
प्रेस्टा

1
> भविष्य में 5 साल, यह अभी भी एक बहुत बड़ी राशि से सबसे धीमी विधि है, ~ 700x की तुलना में धीमी है clearRect
mgthomas99

0

यदि आप केवल क्लियरट्रैक का उपयोग करते हैं, यदि आपके पास अपनी ड्राइंग सबमिट करने के लिए एक फॉर्म है, तो आपको क्लियरिंग के बजाय एक सबमिट मिलेगा, या हो सकता है कि इसे पहले क्लियर किया जाए और फिर एक शून्य ड्राइंग अपलोड किया जाए, इसलिए आपको एक जोड़ना होगा फ़ंक्शन के भीख माँगने पर निवारण

   function clearCanvas(canvas,ctx) {
        event.preventDefault();
        ctx.clearRect(0, 0, canvas.width, canvas.height);
    }


<input type="button" value="Clear Sketchpad" id="clearbutton" onclick="clearCanvas(canvas,ctx);">

आशा है कि यह किसी की मदद करता है।


0

मैं हमेशा इसका इस्तेमाल करता हूं

ctx.clearRect(0, 0, canvas.width, canvas.height)
window.requestAnimationFrame(functionToBeCalled)

ध्यान दें

ClearRect और requestAnimationFrame को संयोजित करना अधिक द्रव एनीमेशन के लिए अनुमति देता है यदि आप यही चाहते हैं


-2

ये सभी महान उदाहरण हैं कि आप मानक कैनवास को कैसे साफ़ करते हैं, लेकिन यदि आप पेपरज का उपयोग कर रहे हैं, तो यह काम करेगा:

जावास्क्रिप्ट में एक वैश्विक चर को परिभाषित करें:

var clearCanvas = false;

अपने पेपरस्क्रिप्ट से परिभाषित करें:

function onFrame(event){
    if(clearCanvas && project.activeLayer.hasChildren()){
        project.activeLayer.removeChildren();
        clearCanvas = false;
    }
}

अब आप जहाँ भी क्लीयरेंस को सच करने के लिए सेट करते हैं, वह स्क्रीन से सभी आइटम्स को क्लियर कर देगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.