/ / अंतर्निहित जबरदस्ती कैसे दूर करें? (कस्टम वर्ग के लिए कास्टिंग) - एक्शनस्क्रिप्ट -3, फ्लैश, कास्टिंग

अंतर्निहित मजबूती को कैसे दूर किया जाए? (कस्टम वर्ग में कास्टिंग) - actioncript-3, फ़्लैश, कास्टिंग

मेरे पास एक वर्ग है जो विस्तार करता है Sprite वर्ग (जो इसे बनाता है a DisplayObject), और मैंने इसे एक बच्चे के रूप में जोड़ा है stage विज़ुअलाइज़ेशन के लिए: stage.addChild(object).

मैं इसे मंच से हटाकर और इसके साथ काम करके इस वस्तु में परिवर्तन करना चाहूंगा (stage.getChildByName(object)), लेकिन अब मुझे मंच से प्राप्त होने वाली वस्तु प्रकार की है DisplayObject। अगर मुझे यकीन है कि मंच से प्राप्त यह वस्तु मेरी कक्षा की है - तो क्या मैं किसी भी तरह अपनी कक्षा के लिए प्रदर्शन कर सकता हूं।

उत्तर:

जवाब के लिए 2 № 1

AS3 में 2 तरीके से कास्टिंग की जाती है।

आप एक उचित कलाकार कर सकते हैं:

MyClass(object)

यदि कलाकार विफल रहता है तो यह एक त्रुटि है।

आप भी इसका उपयोग कर सकते हैं as कीवर्ड:

object as MyClass;

यदि कलाकार विफल रहता है तो यह अशक्त हो जाएगा।


आपको जागरूक होने की जरूरत है, कि getChildByName एक वस्तु को स्वीकार नहीं करता है, लेकिन एक स्ट्रिंग (जो मेल खाती है .name (या उदाहरण का नाम) एक प्रदर्शन वस्तु का मूल्य। यदि आपके पास पहले से ही एक संदर्भ है object, तो वहाँ से देखने की कोई जरूरत नहीं है stage.getChildByName