क्या मुझे टेक्स्ट इनपुट नियंत्रण पर उपयोगकर्ता इनपुट कैप्चर करने के लिए change
या textInput
ईवेंट का उपयोग करना चाहिए? क्यूं कर?फ्लेक्स टेक्स्ट इनपुट नियंत्रण से उपयोगकर्ता इनपुट कैप्चर करना: किस ईवेंट का उपयोग करना है?
उत्तर
textInput
केवल तभी प्रेषित किया जाता है जब उपयोगकर्ता इनपुट नियंत्रण में पाठ करता है। दूसरी ओर, change
, उपयोगकर्ता द्वारा किए गए हर बदलाव पर प्रेषित किया जाता है। तो उदाहरण के लिए, यदि उपयोगकर्ता टेक्स्ट का एक हिस्सा हटा देता है, तो केवल change
ईवेंट प्रेषित किया जाता है।
flash.events.TextEvent.TEXT_INPUT
: जब पाठ कोड के माध्यम से संशोधित किया गया है
इनमें से न तो भेजा जाता है "। भेजा जब उपयोगकर्ता प्रकार, हटाता है, या चिपकाता नियंत्रण में पाठ"
(शब्द वहाँ "हटाएँ" पर ध्यान न दें - मैं सिर्फ यह कोशिश की और इस घटना नहीं भेजा है जब पाठ उपयोगकर्ता द्वारा हटा दिया जाता है)
Msgstr "पाठ इनपुट नियंत्रण में पाठ उपयोगकर्ता इनपुट के माध्यम से बदलता है। यह घटना तब नहीं होती है जब आप डेटा बाइंडिंग या एक्शनस्क्रिप्टका उपयोग करते हैंकोड को बदलने के लिए कोड। "
परिवर्तन (आम तौर पर ध्यान केंद्रित पाठ क्षेत्र से दूर ले जाकर), लेकिन याद रखें कि इस घटना भी भेजा जाता है जब क्षेत्र तुम भी valueCommit
घटना है, जो जब उपयोगकर्ता "करता है" भेजा जाता है का उपयोग कर सकते मूल्य प्रोग्रामेटिक रूप से बदल दिया गया है।
यह एक अच्छा जवाब है, हैसेग। अगर मेरे पास पर्याप्त प्रतिनिधि था, तो मैं इसे वोट दूंगा।
आप जो उपयोगकर्ता इनपुट कैप्चर कर रहे हैं उसके आधार पर, आप TextInput घटक को उपclass कर सकते हैं और परिवर्तन और टेक्स्ट इनपुट ईवेंट के लिए आंतरिक श्रोताओं को ओवरराइड कर सकते हैं।
मुझे नहीं पता कि आप ऐसा करने के कई कारण हैं या नहीं, लेकिन मैंने हाल ही में ओएस एक्स में एक बग से निपटने के लिए किया है जो चिपकने वाले लाइनों को '\ r' के रूप में प्रदर्शित करने का कारण बनता है, '\ n' के बजाए।
this.addEventListener(Event.CHANGE, textFieldChangeListener);
this.addEventListener(TextEvent.TEXT_INPUT,textFieldInputListener);
और फिर श्रोता तरीकों और कोड आप निष्पादित करने के लिए चाहते हैं जोड़ें:
तुम सब करने की ज़रूरत है अपने subclassed वस्तु के निर्माता में निम्नलिखित अपने सुपर के बाद() कॉल जोड़ने है।
दोनों ईवेंट .CHANGE और TextEvent.TEXT_INPUT ईवेंट टाइप किए गए प्रत्येक वर्ण पर ट्रिगर होते हैं। यदि आप एक ऐसा ईवेंट चाहते हैं जो किसी दिए गए टेक्स्ट इनपुट फ़ील्ड के लिए केवल एक बार ट्रिगर करेगा, तो FocusEvent.FOCUS_OUT का उपयोग करें।
ईवेंट की तरह। CHANGE और TextEvent।TEXT_INPUT, यह ईवेंट केवल उपयोगकर्ता इनपुट के लिए ट्रिगर करेगा, न कि मूल्य में प्रोग्रामेटिक परिवर्तनों के लिए। TEXT_INPUT
और KEY_DOWN
करते हैं -
मुझे यह सबमिट करने के बाद एहसास हुआ कि FOCUS_OUT का उपयोग करना एक अच्छा दृष्टिकोण नहीं है क्योंकि, यह सच है कि यह प्रति फ़ील्ड में केवल एक बार ट्रिगर होता है, यह आपको कुछ भी बताता है कि उपयोगकर्ता ने मूल्य बदल दिया है या नहीं। – hrabinowitz
तो ऐसा लगता है कि उपरोक्त हैसग नोट्स के रूप में, यह परिवर्तन टेक्स्ट इनपुट क्षेत्र में उपयोगकर्ता परिवर्तनों को सुनने के लिए सबसे अच्छा विकल्प है। हालांकि, यदि उपयोगकर्ता फ़ील्ड मान की प्रतिलिपि बनाने के लिए नियंत्रण-सी टाइप करता है, तो यह एक परिवर्तन ईवेंट भी ट्रिगर करेगा। – hrabinowitz
CHANGE
does not तुम क्या हालांकि बदल गया है बताओ।
यदि आप किसी चीज़ के अंतिम परिणाम का उपयोग करने की आवश्यकता है, तो आप परिवर्तन ईवेंट को संसाधित करते समय टेक्स्ट इनपुट से पाठ की संपूर्णता को पकड़ सकते हैं। –
- 1. फ्लेक्स - एक टेक्स्ट इनपुट फ़ील्ड
- 2. टेक्स्ट बॉक्स से इनपुट मान प्राप्त करना
- 3. उपयोगकर्ता इनपुट के बिना "क्लिक" ईवेंट को ट्रिगर करना
- 4. संवाद इनपुट मान्य करना
- 5. हास्केल के साथ माइक्रोफ़ोन से ऑडियो इनपुट कैप्चर करना?
- 6. "स्क्रॉल डाउन" ईवेंट कैप्चर करना?
- 7. वेबकैम से इनपुट प्राप्त करना
- 8. उपयोगकर्ता इनपुट कैप्चर करें और बटन
- 9. उपयोगकर्ता इनपुट
- 10. डेटाग्रिड पूर्वावलोकनTextInput ईवेंट इनपुट
- 11. वेबब्राउज़र नियंत्रण में एक इनपुट टैग का मूल्य निर्धारित करना
- 12. टेक्स्ट इनपुट
- 13. उपयोगकर्ता इनपुट
- 14. उपयोगकर्ता इनपुट
- 15. टेक्स्ट इनपुट
- 16. टेक्स्टरेरा इनपुट से नई लाइन कैप्चर करें
- 17. उपयोगकर्ता इनपुट
- 18. कोको में सभी मल्टीटाउच ट्रैकपैड इनपुट को कैप्चर करना
- 19. टेक्स्ट इनपुट फ़ील्ड को अक्षम करना अक्षम है, लेकिन
- 20. डब्ल्यूपीएफ: टेक्स्टबॉक्स पर फायरिंग नहीं है टेक्स्ट इनपुट ईवेंट
- 21. ड्रैगन स्वाभाविक रूप से पाइथन से सभी इनपुट को रीडायरेक्ट करना? (नेटलिंक का उपयोग करना)
- 22. उपयोगकर्ता इनपुट
- 23. इनपुट [टाइप = टेक्स्ट]
- 24. उपयोगकर्ता इनपुट
- 25. उपयोगकर्ता इनपुट
- 26. उपयोगकर्ता इनपुट
- 27. उपयोगकर्ता इनपुट + रूबी + रेगेक्स?
- 28. उपयोगकर्ता इनपुट
- 29. विंडोज़: 2 चूहे से इनपुट अलग करना
- 30. फ़ायरफ़ॉक्स कैप्चर स्वत: पूर्ण इनपुट परिवर्तन घटना
स्पष्टीकरणपूर्ण उत्तर के लिए बहुत बहुत धन्यवाद। एक साइड नोट के रूप में: मैंने कुछ परीक्षण किया और पाया कि 'textInput' ईवेंट (' event.currentTarget.text' का उपयोग करके) ईवेंट हैंडलर में 'टेक्स्ट' प्रॉपर्टी' तक पहुंचने पर, मुझे जो मान मिलता है वह ' पाठ '_before_ कुंजीपटल जिसने घटना को ट्रिगर किया। –
यह मेरे लिए सच नहीं है, कम से कम फ्लेक्स 4.5 में नहीं (मुझे लगता है कि फ्लेक्स 4 भी) स्पार्क टेक्स्ट इनपुट का उपयोग कर। मुझे परिवर्तन घटना में अंतिम पाठ मूल्य मिलता है, इससे पहले एक बदलती घटना भी भेजी जाती है। – Enrique