2012-03-22 14 views
11

मुझे आश्चर्य हुआ कि क्या कोई भी कैनवास और किनेटिकजेएस में परतों को प्रबंधित करने के तरीके पर कुछ प्रकाश डाल सकता है। मैं समझ रहा हूं कि क्यों मैं साफ़(); एक परत, फिर ड्रा() का उपयोग करें; उस परत पर फिर से कार्य करें, यह आकृति आदि के साथ वापस आता है जिसे मैं मूल रूप से उस परत में जोड़ता हूं।कैनवास और KineticJS परत समाशोधन को समझना

उदाहरण के लिए

:

http://jsfiddle.net/vPGbz/1/

मैं एक परत को साफ करने के लिए पूरी तरह से उसे निकाल देता है, और उसे पुनः बनाने का मैं नए आकार की स्थापना की और एक नई परत का निर्माण करने के लिए होता में ग्रहण किया।

यदि कोई भी मुझे यह समझा सकता है तो मैं बहुत आभारी हूं। http://jsfiddle.net/vPGbz/2/clear केवल स्टेज वस्तु से एक परत की तैयार प्रतिनिधित्व निकाल देगा:

चीयर्स, सायस

+3

भ्रम के लिए खेद है! मैं KineticJS दस्तावेज़ –

+0

@EricRowell को गोम लगाने पर काम करूंगा यदि आप एक .removeAll फ़ंक्शन जोड़ सकते हैं तो यह शानदार होगा! –

+0

@EricRowell कभी नहीं, हटाया गया बच्चा() –

उत्तर

10

एक के रूप में आप यहाँ देख सकते हैं कि this documentation uber-वर्बोज़ नहीं माना जाना है ईमानदार होना है, लेकिन। आप जो खोज रहे हैं वह remove विधि है जो परत से कुछ तत्वों को निकालने के लिए उपयोग की जाती है।

तरह:

circleLayer.remove(circle); 
+0

यह मदद करता है, धन्यवाद। प्रलेखन अस्पष्ट है, मैं एपीआई डॉक्स पढ़ने के लिए काफी उपयोग करता हूं, लेकिन मुझे समझना मुश्किल लगता है। –

+0

@CaiusEugene अधिक मौजूद नहीं है .... – m90

+0

@ m90 दस्तावेज़ीकरण अत्याचारी है। मुझे केवल ट्यूटोरियल अनुभाग ही उपयोगी लगता है, लेकिन अगर यह आपके प्रश्न का उत्तर नहीं देता है, तो आप किनेटिकजेएस पर – puk

7

अभी के लिए, आप layer.children = []; कर सकता है, लेकिन मैं नहीं जानता कि अगर यह कोई साइड इफेक्ट होगा कि ऐसा नहीं होना चाहिए!

संपादित करें: ऐसा मत करें। इसके बजाए, ऐसा करें: layer.removeChildren() पर Container के तहत मिला।

0

मैं काइनेटिक्स 4.3.1 का उपयोग कर रहा हूं। मैं दो परतों

आप इस लिंक की जाँच कर सकते हैं बना रही हूँ, इसलिए मैं जोड़ सकते हैं और चेकबॉक्स के साथ उनमें से एक निकाल सकते हैं: http://jsfiddle.net/lauraliparulo/uw25p/

कुछ इस तरह:

checkBoxItem.addEventListener('click', function() { 
     if (this.checked) { 
      load(); 
      stage.add(layer2); 
     } 

     else if (!this.checked) { 
      layer2.clear(); 
     } 

    }); 

: -)

संबंधित मुद्दे