2011-06-24 14 views
7

मैं यह दिखाने के लिए इवेंट मेटाडेटा टैग का उपयोग करना चाहता हूं कि मेरा नियंत्रण किस प्रकार की घटना प्रेषित करेगा। वाक्य रचना लगता है:इवेंट मेटाडाटा: "नाम" विशेषता के लिए स्थिर चर का उपयोग करना?

public class MyEvent extends Event 
{ 
    public static const EVENT_NAME:String = "eventName"; 
    // Other stuff.. 
} 

यह एक महान अभ्यास के बाद से घटना नाम बदल सकते हैं:

<fx:Metadata> 
    [Event(name="eventName", type="MyEvent")] 
</fx:Metadata> 

यह स्थैतिक चर कि इतने तरह घटना नाम परिभाषित परिभाषित करने के लिए फ्लेक्स/Actionscript में एक सबसे अच्छा अभ्यास की तरह लगता है आसानी से और पूरे कोड में संशोधित नहीं किया जाना चाहिए। तो मेरा सवाल है: क्या मेरे मेटाडेटा ईवेंट टैग में इस स्थिर कॉन्स का उपयोग करने का कोई तरीका है? मैं इस तरह कुछ करने के लिए प्रतीत नहीं कर सकते हैं: यह करने के लिए

<fx:Metadata> 
    [Event(name="{MyEvent.EVENT_NAME}", type="MyEvent")] 
</fx:Metadata> 

Am मैं सिर्फ उचित सिंटैक्स से अनभिज्ञ है, या यह असंभव है? ऐसा लगता है कि अगर कोई दृढ़ता से टाइप नहीं किया जाता है तो यह केवल बग को खोजने के लिए कड़ी मेहनत कर रहा है। अग्रिम में धन्यवाद!

उत्तर

6

बुरी खबर यह असंभव है :(मैं इस संभावना के बारे में सपना लेकिन ...

+0

हाँ, यह उस बिंदु पर एक बड़ी परेशानी है जहां मैं शायद ही कभी इसका उपयोग करता हूं। मैं एमएक्सएमएल, हाहा का उपयोग करने के बजाय बस 'myComp.addEventListener' करता हूं। –

1

हाँ, यह करने के लिए असंभव है, लेकिन describeType() फोन करके अपने खुद के क्रम की जाँच करने से आप को रोकने के लिए कुछ भी नहीं है। मेटाडाटा उपलब्ध है कक्षा (इस उदाहरण में)। xml को पार्स करें और अपने कॉन्स के खिलाफ मानों की जांच करें। यदि कोई समस्या है, तो कोई त्रुटि डालें या ट्रेस आउटपुट करें। यह सही नहीं है, लेकिन यह आपको कुछ सुरक्षा देगा