फ्लैश CS4 जाने से इनकार करता है


2742

मेरे पास एक Flash परियोजना है, और इसमें कई स्रोत फाइलें हैं। मेरे पास काफी इस्तेमाल होने वाला वर्ग है, इसे जेनिन कहते हैं। मैंने हाल ही में (और, शायद, फोन करके) जेनिन को एक नाम स्थान से दूसरे स्थान पर स्थानांतरित कर दिया। मुझे लगा कि हम तैयार हैं - मैंने सोचा कि यह समय था। नई जेनिन हर तरह से बेहतर थी - उसने कुछ कोड ब्लॉट खो दिए थे, उसने कुछ वेस्ट क्लास क्लास के रिश्तों से खुद को अलग कर लिया था, और वह आखिरकार नामस्थान पर आ गई थी कि वह हमेशा अपने दिल में छिपी थी जिसे वह वास्तव में जानती थी से संबंधित। वह अपनी तरह का था।

दुर्भाग्य से, फ्लैश में कोई नहीं होगा। शायद इससे लगाव पैदा हो गया था। शायद यह नहीं चाहता था कि जेनिन को विघटित कर दिया जाए। किसी भी तरह से, यह अपनी स्मृति में जेनिन के पुराने, सही संस्करण से जुड़ा हुआ है। इसने आगे बढ़ने से इनकार कर दिया। इसने उसकी (फंक्शन) कॉल्स को नजरअंदाज कर दिया। इसने उसके नए, सार्वजनिक इंटरफेस को भूलने की कोशिश की। इसके बजाय, जेनिन के प्रत्येक उदाहरण जो इसका निर्माण किया गया था, वह हमेशा पुराने संस्करण की एक प्रति था, जो अपने वर्गपथ के नीचे था:

var jenineInstance:Jenine = new Jenine();
trace( getQualifiedClassName(jenineInstance));
// Should print: com.newnamespace.subspace::Jenine
// Prints: com.oldnamespace.subspace::Jenine
// Ah, young love!

हम लड़े। मैंने जो कुछ कहा या किया, उस पर मुझे गर्व नहीं है। अंत में, गुस्से की एक तंद्रा में, मैंने जेनिन के सभी संदर्भों को पूरी तरह से हटा दिया। वह पूरी तरह से, सिस्टम से पूरी तरह से मिटा दिया गया था। मेरा कर्सर एक कास्केट के ठंडे ढक्कन की तरह "खाली कचरा" मेनू विकल्प पर गिर गया।

मुझे नहीं लगता कि फ्लैश कभी बरामद हुआ। आज तक यह जेनिन की स्मृति से जुड़ा हुआ है। उसकी पुरानी, ​​अपूर्ण परिभाषाएं अभी भी मेरी परियोजना के माध्यम से परित्यक्त भूतों की तरह तैरती हैं। जब भी मैं फ्लैश को संकलित करने के लिए मजबूर करता हूं, तब भी यह प्यार से उसे मेरी फिल्म में सम्मिलित करता है, एक छोटे से मंदिर की तरह, दूसरे, जीवित वर्गों के बीच उसकी परिभाषा को लागू करता है। मुझे आश्चर्य है कि अगर वे उसे देख सकते हैं।

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

मुझे आशा है कि किसी और को भी ऐसा अनुभव नहीं हुआ होगा, कि यह भयावह अंधेरे लैगून में बस एक विलक्षण, दर्दनाक लहर है जो फ्लैश कोड-बेस है। क्या किसी को कोई भी पता नहीं है कि संकलक जो कैश का उपयोग कर रहा है उसे कैसे मिटाएं?

जवाबों:


701

फ़्लैश में अभी भी ASO फ़ाइल है, जो आपकी कक्षाओं के लिए संकलित बाइट कोड है। विंडोज पर, आप ASO फाइलें यहां देख सकते हैं:

C:\Documents and Settings\username\Local Settings\Application Data\Adobe\Flash CS4\en\Configuration\Classes\aso

एक मैक पर, निर्देशिका संरचना समान है /Users/username/Library/Application Support/


आप उन फ़ाइलों को हाथ से हटा सकते हैं, या फ़्लैश में आप Control->Delete ASO filesउन्हें हटाने का चयन कर सकते हैं।


34
नीचे से कॉपी किया गया: यह और दूसरा, बहुत समान उत्तर बिल्कुल वही है जो मैं ढूंढ रहा था, लेकिन दुर्भाग्य से समस्या हल नहीं होती है। मैं इस एक को Adobe बग मज़ा tiem चाक करने जा रहा हूँ। मैं इसे हल करने के लिए जा रहा हूँ, हालाँकि।
Ender

292
पुनश्च: मैंने मेनू आइटम को बार-बार क्लिक किया है। मैंने फाइल संरचना में गहराई से खोज की है जो अंत में उन फाइलों को फिर से मिलाने के लिए है जिनमें जेनिन के अंतिम गूँज शामिल हैं। वे वहाँ नहीं हैं। जब मैं उनके बारे में पूछता हूं, तो फ्लैश बस कुछ असंगत हो जाता है और अंतरिक्ष में भाग जाता है। मुझे लगता है कि मैं अपने माउस बटन के पागल हथौड़ा पर कुछ सुनना शुरू कर सकता हूं। जेनिन हँस रही है।
Ender

23
@ और, क्या आप उसी समस्या का अनुभव करते हैं, यदि आप नए बॉक्स पर कोड को नए सिरे से संकलित करते हैं। एक नए कंप्यूटर पर कोड के एक ताजा चेकआउट की तरह? यह आपको यह बताना चाहिए कि यह आपके फाइल सिस्टम पर कोड या चीजों के साथ समस्या है या नहीं ।
जेसी वेब

197

अपनी ASO फ़ाइलों को हटाने का प्रयास करें।

ASO फाइलें आपकी श्रेणी की फाइलों के संकलित संस्करण कैश की गई हैं। हालाँकि जब बदलाव किए जाते हैं तो पुराने कैश को जाने देने में IDE बहुत बेहतर होता है, कभी-कभी आपको उन्हें मैन्युअल रूप से हटाना पड़ता है। ASO फाइलें डिलीट करने के लिए: Control> ASO फाइल्स को डिलीट करें।

यह "I-am-not-not-see-my-changes-so-let-me-add-a-ट्रेस-अब-एवरीथिंग-वर्क्स" बग का कारण भी है जिसे CS3 में पेश किया गया था।


165

यदि आप इसे किसी अन्य मशीन का उपयोग करके संकलित करते हैं तो क्या होगा? एक ताजा स्थापित प्यारा होगा। मुझे आशा है कि आपकी मशीन ईर्ष्या नहीं है।


125

मैंने एक संबंधित व्यवहार पाया है जो मदद कर सकता है (लगता है कि आपकी विशिष्ट समस्या हालांकि गहरी चलती है):

फ्लैश जांचता है कि टाइमस्टैम्प को देखकर किसी स्रोत फ़ाइल को फिर से जमा करने की आवश्यकता है या नहीं। यदि इसका संकलित संस्करण स्रोत फ़ाइल की तुलना में पुराना है, तो यह फिर से शुरू हो जाएगा। लेकिन यह जांच नहीं करता है कि संकलित संस्करण एक ही स्रोत फ़ाइल से उत्पन्न हुआ था या नहीं।

विशेष रूप से, यदि आपके पास संस्करण नियंत्रण के तहत आपकी एक्शनस्क्रिप्ट फाइलें हैं, और आप किसी परिवर्तन को वापस करते हैं, तो वापस की गई फ़ाइल में आमतौर पर एक पुराना टाइमस्टैम्प होगा, और फ्लैश इसे अनदेखा करेगा।


12
सच है, मैं दक्षिण अफ्रीका और लंदन के डेवलपर्स के साथ कई परियोजनाओं पर काम करता हूं। जब हम फ्लैश फाइल को आगे-पीछे करते हैं, तो हमें इसे स्थानीय रूप से सहेजना होगा, क्योंकि संकलन से फाइल के टाइमस्टैम्प के आधार पर एक पागल त्रुटि होगी। अनिवार्य रूप से, एक फ्लैश संकलित करने की कोशिश करना जो भविष्य में सहेजा गया है वह मुद्दा है। हमने अपने ओएस पर अपनी तारीख बदलकर इसका पता लगाया। अपने टाइमस्टैम्प की जाँच करने का प्रयास करें।
डोमिनिक तांक्रेड्डी

103

इसके अलावा, अपने नए नामांकित वर्ग का उपयोग करने के लिए आप भी कर सकते हैं

var jenine:com.newnamespace.subspace.Jenine = com.newnamespace.subspace.Jenine()

96

क्या आपके पास कई swf-files हैं? यदि आपकी कक्षा swf के किसी एक में आयात की जाती है, तो अन्य swf की कक्षा के समान संस्करण का भी उपयोग किया जाएगा। एक स्वफ़ में एक पुराना आयात * करेगा। सब कुछ फिर से संगठित करें और देखें कि क्या यह काम करता है।


10
हाँ, मैं शर्त लगा रहा हूं कि जेनिन आपके कोड के किसी अन्य भाग में संकलित है, या तो एक swf या एक swc जो आप उपयोग कर रहे हैं।
अर्पित

11

अपने पूरे प्रोजेक्ट फ़ोल्डर में grepस्ट्रिंग्स oldnamespaceऔर Jenineफ़ाइलों के अंदर खोजने के लिए एक एनालॉग का उपयोग करें । फिर आपको पता होगा कि आगे क्या करना है।


4
मेरा खुद का अनुमान है कि आप क्यों निराश हो गए हैं कि आपने एक स्पष्ट जवाब दिया है और दृढ़ता से निहित है कि यह समस्या को हल करेगा। आपका उत्तर आवश्यक रूप से बुरा नहीं है, लेकिन आपके वाक्यांशों की व्याख्या अनुचित रूप से अति आत्मविश्वास या घृणा के रूप में की जा सकती है, जो कभी-कभी लोगों को परेशान करती है।
एरहनीस

5
हम्म। शायद आप ठीक कह रहे हैं। दूसरी ओर, यह निराशा होती है जब प्रश्न मेरे जैसे स्पष्ट प्रश्नों के उत्तर प्रदान नहीं करता है। कुछ इस तरह "मैंने सभी फाइलों में स्ट्रिंग जेनिन की खोज की है, लेकिन एक मैच नहीं मिला"। मेरे साथ षड्यंत्र रचा गया। मैं इस रहस्य को सुलझाना चाहता हूं। लेकिन लेखक ने मुझे फांसी पर लटका दिया।
आर्क-कुन

3
जैसा कि मैंने कहा, आपका उत्तर जरूरी बुरा नहीं था; यह सिर्फ यह हो सकता है कि आपका वाक्यांश किसी को नाराज़ कर दे। ईमानदारी से, यह मेरी पहली प्रतिक्रिया थी। मैं आमतौर पर " उम्मीद है कि यह मदद करेगा " के तरीके से चीजों को कहने की कोशिश करता है , यह देखते हुए कि अक्सर चीजों का वास्तविक कारण वही होता है जो हम सोचते हैं। फिर से, मैं मानता हूं कि आपका उत्तर कुछ ऐसा है जिसे एक व्यक्ति को प्रयास करना चाहिए, और इसलिए प्रस्तुत जवाब के रूप में विचार का गुण होता है, लेकिन कभी-कभी लोगों को इससे अधिक प्रभावित करना चाहिए।
एरहानिस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.