flash - Equivalent of Flex DataBinding using Pure Actionscript -


जब फ्लेक्स कुछ इस तरह देखता है:

  & lt; mx: लेबल टेक्स्ट = "हैलो {MyVar} विश्व! "/ & Gt;  

यह एक्शन स्क्रिप्ट में किसी भी रूप में अनुवाद करना चाहिए लेकिन अगर मुझे कुछ ऐसा करने की आवश्यकता है, तो रनटाइम पर मैं किस गतिशीलता को पूरा कर सकता हूं? जब मैं बाइंडिंग टेम्प्लेट की सामग्री नहीं जानता हूं।

एक्शन स्क्रिप्ट में इसे कुछ इस तरह दिखना होगा:

  सार्वजनिक फ़ंक्शन कस्टम डायनेमिकबैडिंग (स्ट्रिंगटोबिंड: स्ट्रिंग): लेबल {// * उदाहरण: स्ट्रिंगटौबिंद के: // "हैलो {मायवर्स} विश्व!" // "उत्पाद: {name} $ {price} .00" // "{data.label}, {data.description}" // मैंने इसे इस तरह से लिखी है क्योंकि मुझे पता नहीं है कि सटीक पाठ को बाउंड होना है डिजाइन समय पर [बिन्डेबल] var लैब: लेबल = नया लेबल (); Lab.text = ??? वापसी (लैब); }  

मैं इस तरह की "गतिशील" बाध्यकारी कैसे प्राप्त कर सकता हूं ... जहां मैं "स्ट्रिंगटोबिंद" का मूल्य रनटाइम तक नहीं जानता है? इस प्रश्न के प्रयोजनों के लिए हम यह मान सकते हैं कि मुझे पता है कि "StringToBind" में उल्लिखित किसी भी चर () को रनटाइम पर मौजूद होने की गारंटी है।

मुझे पहले से ही पता है कि पूरा करने के लिए अधिक सरल तरीके हैं यह सही बात सही है, और केवल फ्लेक्स / एमएक्सएमएल का उपयोग कर। यह मेरी प्रोजेक्ट के लिए महत्वपूर्ण है, हालांकि मुझे समझ में आ रहा है कि यह कैसे एमएक्सएमएल के बिना पूरा किया जा सकता है।

यह करना: lab.text = stringToBind.replace ("{myVar}", str);

काम नहीं करेगा क्योंकि यह केवल "{myVar}" के मूल्य को एक बार प्रदान करता है - (जो "स्ट्रिंगबॉइंड" में संदर्भित चर भी नहीं हो सकता है !!) लेबल के लिए, और जब और जब myVar बदल जाता है, तो यह ध्यान में नहीं आता है! क्या मुझे किसी तरह बाँधप्रोपर्टी की तरह कुछ का उपयोग करने की आवश्यकता नहीं होगी?

उपयोग करें

 < कोड> var स्ट्रिंगओबंड: स्ट्रिंग = "हैलो {myVar} world!"; [बिन्डेबल] var myVar: स्ट्रिंग = 'फ्लेक्स'; Var प्रयोगशाला: लेबल = नया लेबल (); बाइंडयूथिल.बिंडसेटर (लेबलवैल्यू, यह, "माइवर"); फ़ंक्शन सेट लेबल वैल्यू (स्ट्र: स्ट्रिंग): शून्य {lab.text = "हैलो" + एआर + "विश्व!"; // या यदि आप चाहते हैं कि यह गतिशील lab.text = stringToBind.replace ("{myVar}", str); }  

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


Comments

Popular posts from this blog

windows - Heroku throws SQLITE3 Read only exception -

lex - Building a lexical Analyzer in Java -

python - rename keys in a dictionary -