2010-01-29 7 views
5

मुझे एक समस्या है जिसमें फ्लैश प्रोजेक्ट के विकास के दौरान मुझे कई बार परेशान किया गया है।एक एसएफएफ की पुस्तकालय में घटकों को जोड़ने का सही तरीका क्या है?

TypeError: Error #1009: Cannot access a property or method of a null object reference. 
at fl.containers::BaseScrollPane/fl.containers:BaseScrollPane::drawBackground() 
at fl.controls::TileList/fl.controls:TileList::draw() 
at fl.core::UIComponent/::callLaterDispatcher() 
TypeError: Error #2007: Parameter child must be non-null. 
at flash.display::DisplayObjectContainer/addChildAt() 
at fl.controls::BaseButton/fl.controls:BaseButton::drawBackground() 
at fl.controls::BaseButton/fl.controls:BaseButton::draw() 
at fl.core::UIComponent/drawNow() 
at fl.controls::ScrollBar/fl.controls:ScrollBar::draw() 
at fl.core::UIComponent/::callLaterDispatcher() 

अब, मेरे मामले में, इस त्रुटि कोड में घटकों आरंभ जब वे स्पष्ट रूप में CS4 fla के घटक पुस्तकालय के लिए नहीं जोड़ा गया है की वजह से उपजी: यह इस तरह दिखता है। अतीत में, कोड में स्क्रॉलपैन्स को गतिशील रूप से बनाने की कोशिश करते समय, मैंने इस समस्या में भाग लिया है। मैंने स्क्रॉलपेन घटकों को मेरी मेन.फला की लाइब्रेरी में जोड़कर हल किया है। यह थोड़ी देर के लिए काम करना प्रतीत होता था।

अब, मैं एक AstraFlash स्वत: पूर्ण बॉक्स का उपयोग करने की कोशिश कर रहा हूं। मैंने सीएस 4 में उचित फ्लै फाइलों को आयात किया है, और एक ऑटोकंपलेट बॉक्स को मेरे एसएफएफ में रखा है। सब कुछ ठीक बनाता है, लेकिन उपरोक्त त्रुटि तब होती है जब SWF लोड होता है। मेरा विचार यह है कि स्वत: पूर्ण बॉक्स इसकी कार्यक्षमता के हिस्से के रूप में स्क्रॉलपैन बनाने की कोशिश कर रहा है। ठीक है, मैं इसे समझता हूं, इसलिए मैं पुस्तकालय में स्क्रॉलपेन घटक को एक ही परिणाम के साथ जोड़ता हूं।

आमतौर पर मैं लाइब्रेरी घटकों/सेटिंग्स के साथ गड़बड़ कर दूंगा जब तक कि मैं त्रुटि से छुटकारा पाता हूं, लेकिन मैं इसमें भागने में बीमार हूं, और मैं समस्या को हल करने का सही तरीका जानना चाहता हूं।

  • जब आप एक Fla के पुस्तकालय में कोई घटक जोड़ने के बजाय कोड में घटक बनाने के लिए आवश्यक हैं: तो, यहाँ कुछ सवाल मेरे पास है कर रहे हैं?

  • आपको कौन सा फ़्लैस घटक जोड़ने की आवश्यकता है? बस इसका इस्तेमाल कर रहे हैं? या उस फ्लै के सभी माता-पिता भी?

  • मान लें कि स्वत: पूर्ण घटक को स्क्रॉलपेन घटक की आवश्यकता होती है। जब मैं एक घटक जोड़ता हूं तो यह निर्भरता क्यों मान्यता प्राप्त नहीं होती है? मुझे इसे स्पष्ट रूप से क्यों जोड़ना चाहिए?

  • लाइब्रेरी में घटक जोड़ने और इसे लाइब्रेरी के 'घटक संपत्ति' फ़ोल्डर में जोड़ने के बीच क्या अंतर है? इस फ़ोल्डर का उद्देश्य क्या है?

मुझे वास्तव में काम करने के लिए इस ऑटोकंपलेट घटक की आवश्यकता है। एएस 3 कोड मानना ​​सही है, और मुझे अभी भी उपरोक्त त्रुटि मिल रही है, आपको लगता है कि कौन सी सेटिंग्स शायद गलत हैं? निराशा से, मैंने लाइब्रेरी में प्रत्येक संभावित घटक को जोड़ने के साथ-साथ लाइब्रेरी के घटक संपत्ति फ़ोल्डर को केवल प्रारंभिक बिंदु रखने की कोशिश की है, लेकिन मुझे अभी भी त्रुटि मिलती है।

किसी भी मदद की सराहना की जाती है।

उत्तर

2

मुझे यकीन नहीं है कि मैं समझता हूं कि आप सेटअप कर रहे हैं। जो मैं मान रहा हूं वह है कि आपके पास एक बच्चा फ्लै है जिसमें कुछ घटक हैं और आपको उन घटकों के उदाहरण माता-पिता (लोडर) फ्लै में बनाने की आवश्यकता है।

यह काम करना चाहिए यदि आप बच्चे के फ्लै से कक्षाओं को पैरेंट फ्लै में संकलित करते हैं, लेकिन इससे चीजों को डुप्लिकेट किया जाएगा।

समस्या तब होती है जब आप एक एसएफएफ लोड करते हैं, कक्षाएं अलग-अलग ApplicationDomain पर बैठती हैं। बस शब्दों में कहें, यह वह चीज है जो एक एसएफएफ में कक्षाएं प्रबंधित करती है ताकि आपके पास लोडर और लोड किए गए एसएफएफ़ और कुछ अन्य सुरक्षा सामान के बीच क्लास टकराव न हो।

मैंने एक साधारण फ्लै बनाया जो बटन घटक (fl.controls.Button) रखता है और लोडर फ्लै से लोड करता है। मैंने लोडर फ्लै में बटन घटक नहीं जोड़ा, लेकिन लोड किए गए एसएफएफ़ एप्लिकेशन डोमेन का उपयोग करके बटन बटन बनाया।

var loader:Loader = new Loader(); 
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loaded); 
loader.load(new URLRequest('componentContainer.swf')); 

function loaded(event:Event):void { 
    addChild(loader.content); 
    var SWFButton:Class = loader.contentLoaderInfo.applicationDomain.getDefinition('fl.controls.Button') as Class; 
    var button = new SWFButton(); 
    button.label = 'Test'; 
    addChild(button); 
} 

प्रोग्रामिंग ActionScript 3.0 में एक पृष्ठ मुद्दों के thise तरह और कैसे ApplicationDomain का उपयोग करने के बारे में नहीं है, लेकिन मैं पूरी तरह से समझ में नहीं आया कि यह ईमानदार होना: यहाँ कैसे।

एचटीएच, जॉर्ज

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