में एक बार में सभी ईवेंट श्रोताओं को कैसे हटाएं I as3 में एक छोटा सा गेम बना रहा हूं।AS3
इस गेम में 10 स्तर हैं।
जब मैं 1 स्तर दर्ज करता हूं तो सब कुछ ठीक है। लेकिन जब मैं दूसरे स्तर (फ्रेम) में प्रवेश करता हूं तो पहले फ्रेम से ईवेंट श्रोताओं अभी भी काम कर रहे हैं और एक चेतावनी प्राप्त करते हैं कि 'शून्य objct संदर्भ की वस्तु का उपयोग नहीं कर सकता'। ऐसा इसलिए है क्योंकि मैं पहले स्तर के प्रत्येक ऑब्जेक्ट को हटाता हूं और वें चरण 2 से ऑब्जेक्ट्स जोड़ता हूं।
मैंने removeEventListeners का उपयोग करने का प्रयास किया है, लेकिन यह काम नहीं करता है, क्योंकि ENTER_FRAME श्रोताओं ने ईवेंट को निकालने के बाद एक और बार काम किया है श्रोताओं।
मैंने विभिन्न स्तरों के लिए अलग-अलग फ्रेम का उपयोग करने की कोशिश की है, बिट यह काम नहीं करता है। इसके अलावा मैंने सभी 10 फ्रेमों के लिए 1 frmae का उपयोग करने का प्रयास किया, लेकिन मुझे बहुत सी चेतावनी मिलती है और फ्लैश लोडर अधिभारित होता है।
मैं स्तर (पीछे और आगे) के माध्यम से कैसे स्विच कर सकता हूं? अग्रिम में धन्यवाद।
addEventListener(Event.ENTER_FRAME, subtracting2);
arrListeners.pop(); // poping it out of the array because it will be deleted after the count reaches 0
function subtracting2 (e:Event):void
{
count--;
var FAcoef:Number = count/30; //
FadeAway.alpha = FAcoef; // Some effect like FadeAway
setChildIndex(FadeAway, numChildren - 1); //
if(count == 0)
{
setChildIndex(FadeAway, 0);
removeEventListener(Event.ENTER_FRAME, subtracting2);
}
}
आप नहीं कर सकते। यदि आप ईवेंट (** एसिंक्रोनस **) से परेशान नहीं करना चाहते हैं, तो [AS3 सिग्नल] (https://github.com/robertpenner/as3- सिग्नल) (** सिंक्रोनस **) आज़माएं। – Florent
हो सकता है कि आपको ईवेंट श्रोताओं को एंटरफ्रेम लूप में नहीं जोड़ना चाहिए ... – Kodiak
मुझे यह सुनिश्चित करने के लिए ENTER_FRAME जोड़ना होगा कि स्तर पारित किया गया है और यह सुनिश्चित करने के लिए कि गेम कानून कोई टूटा नहीं है। यह मेरा विचार नहीं होना चाहिए कि सही क्या है (EventListeners को हटाएं)। जब तक यह ठीक काम करता है, मैं किसी भी विचार को स्वीकार करूंगा – Stefan4024