2011-02-27 14 views
13

में एकाधिक साझा ऑब्जेक्ट्स के लिए सिंक को हटाएं सिंक को प्राप्त नहीं करना मेरे पास एक ऐसा एप्लिकेशन है जो दूरस्थ साझा ऑब्जेक्ट्स का उपयोग करता है और मुझे कुछ अजीब व्यवहार दिखाई दे रहा है। मैं फ्लैश बिल्डर का उपयोग करके एएस 3 में एक्शनस्क्रिप्ट एप्लिकेशन लिख रहा हूं और वोवा मीडिया सर्वर 2 से कनेक्ट कर रहा हूं।एक ही एसडब्ल्यूएफ

मेरा एप्लिकेशन ठीक काम कर रहा है लेकिन अब मैं फ्लेक्सयूनीट का उपयोग करके यूनिट परीक्षण लिखने की कोशिश कर रहा हूं। मेरे यूनिट परीक्षणों में एक ही रिमोट SharedObject के लिए कई कनेक्शन बनाने और यह सुनिश्चित करने के लिए कि मुझे अपडेट सही तरीके से मिल रहे हैं। सब कुछ अच्छी तरह से काम कर रहा प्रतीत होता है सिवाय इसके कि मुझे "delete" के info.code के साथ SyncEvent.SYNC ईवेंट नहीं मिल रहा है। जब मैं अलग-अलग टैब में स्वतंत्र रूप से अपने एप्लिकेशन चलाता हूं या उसी पृष्ठ में एम्बेडेड अलग-अलग swfs भी ठीक काम करता है। कुछ कारणों से हालांकि यह यूनिट परीक्षण के अंदर काम नहीं करता है। मैंने यह भी पाया है कि अगर मैं एक ही एसडब्ल्यूएफ के अंदर लोडर का उपयोग करके swfs लोड करता हूं तो मुझे वही व्यवहार मिलता है। ऐसा लगता है कि एक ही एसडब्ल्यूएफ के भीतर उसी साझा ऑब्जेक्ट के गुणों के तरीके के बारे में कुछ अजीब बात है। मुझे यूनिट परीक्षणों में अन्य अजीब व्यवहार के आसपास काम करना पड़ा जैसे पुरानी वैल्यू ऑनसिंक घटनाओं में भी ठीक से सेट नहीं हो रही है।

किसी के पास कोई विचार है कि मैं इसके आसपास कैसे काम कर सकता हूं? क्या यह जाना पहचाना हुआ मुद्दा है? मैं पागल हो रहा हूँ? :)

किसी भी मदद की सराहना करेंगे!

+0

आप पागल नहीं हैं! आज भी मेरे साथ हुआ, मुझे यह पता चला कि 8 घंटे गुम हो गए। मैं एक रिमोट एसओ के लिए अधिक संदर्भों का उपयोग कर रहा था और जब मैंने ईवेंट श्रोता को हटा दिया तो मैंने उन सभी को हटा दिया, या जब मैंने एसओ के एक संदर्भ को बंद कर दिया, तो मैंने सब बंद कर दिया .. साझा ऑब्जेक्ट बहुत छोटी गाड़ी सिंगलटन प्रतीत होता है। –

+0

मुझे एहसास है कि यह एक पुराना धागा है लेकिन यह 2016 है और मुझे यह समस्या मिल रही है - क्या यह कभी हल हो गया था? – Visualife

उत्तर

0

मुझे इस समस्या का भी सामना करना पड़ा जब मैं कुछ फ्लेक्स एप्लिकेशन पर केयरिंगॉर्म जैसे कोडिंग फ्रेमवर्क का उपयोग करके काम कर रहा था, और बहु ​​रिमोट ऑब्जेक्ट्स के साथ एएमएफपीएचपी से कनेक्ट कर रहा था।

उस समय मैं इस मुद्दे को हल करने के लिए क्या आया हूं यह सुनिश्चित करना है कि उन दूरस्थ वस्तुओं को एक ही समय में नहीं निकाल दिया जाएगा। वह उन दूरस्थ वस्तुओं को एक दूसरे के बाद आग लगाने के लिए कुछ तथाकथित "अनुक्रमिक श्रृंखला" बनाने की कोशिश कर रहा है।

यह प्राप्त करने के लिए यदि आप इसे स्क्रैच से करते हैं तो यह मुश्किल हो सकता है, आप उन आधुनिक एक्शनस्क्रिप्ट फ्रेमवर्क 2.0 का उपयोग करने में आपकी सहायता के लिए उपयोग कर सकते हैं (जैसे SWIZ या Robotlegs)। यह बहुत शुरुआत में संभालने के लिए बहुत जटिल हो सकता है। मेरा सुझाव है कि आप रिमोट ऑब्जेक्ट पार्ट्स को अन्य चीजों को बरकरार रखने के दौरान ढांचे द्वारा संभाले जा सकते हैं।

0

अपना साझा ऑब्जेक्ट उदाहरण प्राप्त करने के लिए, आप स्थिर विधि SharedObject.getRemote() का उपयोग कर रहे हैं। मेरा मानना ​​है कि यह विधि हमेशा दिए गए नाम के लिए एक ही उदाहरण लौटाएगी (और यदि दृढ़ता पैरामीटर का एक ही मान है)।

जब आप अपने ऐप (mySO = null) से साझा ऑब्जेक्ट को हटाते हैं तो आपको वही समस्या हो सकती है और कचरा कलेक्टर ने अपना काम करने से पहले इसे पुन: स्थापित कर दिया है)।

इस प्रकार का व्यवहार मुझे समझ में आता है, लेकिन कभी-कभी यह एक समस्या हो सकती है जिसे मुझे स्वीकार करना होगा। वैसे भी किसी डीबग सत्र में परीक्षण करना आसान होना चाहिए (अपनी ऑब्जेक्ट्स इवेंट नंबर पर नज़र डालें)।

अब इकाई परीक्षणों के बारे में बात करते हुए, आप क्या परीक्षण कर रहे हैं? साझा ऑब्जेक्ट्स व्यवहार? यदि ऐसा है, तो मेरा मानना ​​है कि यहां कुछ गलतफहमी है। यह वास्तव में आप इस तरह के व्यवहार का परीक्षण करना चाहते हैं (और मुझे पीछे कारण में दिलचस्पी होगी), तो मुझे लगता है कि आपको कुछ और जटिल परीक्षणों की आवश्यकता होगी जो दो अलग-अलग अनुप्रयोग चलाते हैं।

उम्मीद है कि यह मदद करता है!

0

हमारे पास हमारे प्रोजेक्ट में हटाए गए समान व्यवहार थे। जब हम so.close() को कॉल करते हैं। फिर साझा ऑब्जेक्ट में कुछ कुंजी हटाएं। फिर फिर से कनेक्ट करें - यह अभी भी हटाए गए कुंजी को जिंदा देखता है।

वर्कअराउंड: हटाए गए चिह्नित करने के लिए कुछ स्थिरांक मानों (उदाहरण के लिए -2) के साथ हटाए गए कुंजी को बंद या अपडेट न करें।

Wowza 3 का उपयोग किया गया था।

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