matlab - Block a KeyPressFcn while waiting mouse action -
मेरा प्रोग्राम एक प्रश्न / उत्तर कार्य है:
- सहभागी को स्पेस (कीबोर्ड) बार पर प्रेस करना होगा एक दो-बटन (माउस) पर प्रेस के बाद एक साउंड-पार्टिसिपेंट खेलने के लिए आवश्यक है- साझेदार को ध्वनि बजाने के लिए स्पेस बार पर प्रेस करना होगा ...
समस्या यह है, मैं केवल एक को अनुमति देना चाहता हूं स्पेस बार पर दबाएं, क्योंकि उपयोगकर्ता अंतरिक्ष में कई बार प्रेस कर सकता है और ध्वनि एक्स बार चला सकता है। माउस की प्रतिक्रिया का इंतजार करते समय आंकड़ा 1_केपप्रेस को अवरुद्ध कैसे करें, और जब हमारे पास माउस प्रतिक्रिया होती है, तो क्या हम फ़ंक्शन को पुनः सक्रिय करते हैं?
फ़ंक्शन आंकड़ा 1_केपप्रेस (एच ऑब्जेक्ट, इवेंटडेटा, हैंडल) इवेंटडेटा स्विच करें.के मामले 'स्पेस' %% प्रोसेसिंग एक्स टास्क% बजना 1000 एमएस ध्वनि (वाई, एफएस); ग्विडाटा (एचओबैक्ट, हैंडल); %% // सहेजते हैंडल डेटा अन्यथा disp ('error'); एंड एंड फ़ंक्शन pushbutton1_Callback (एच ऑब्जेक्ट, इवेंटडेटा, हैंडल)% प्रोसेसिंग टास्क ग्विडाटा (एचओबीजेक्ट, हैंडल); %% // संभालता है डेटा अंत समारोह pushbutton2_Callback (hObject, eventdata, हैंडल)% प्रसंस्करण कार्य guidata (hObject, हैंडल); %% // संभालता है डेटा अंत
आप एक वैश्विक ध्वज का उपयोग कर सकते हैं, कुछ इस तरह से:
वैश्विक क्लिक किया; क्लिक = सच; फिर, आपके figure1_KeyPressFcn फ़ंक्शन पर, आप केवल स्विच को कॉल करते हैं, अगर उपयोगकर्ता ने इस तरह से क्लिक किया है: वैश्विक क्लिक किया; यदि स्विचड इवेंटडेटा पर क्लिक किया जाता है। मुख्य केस 'स्पेस' क्लिक = फलक; %% प्रोसेसिंग एक्स टास्क ... एंड एंड और दोनों अपने pushbutton? _Callback पर, आप इसे जोड़ते हैं: < कोड> वैश्विक क्लिक किया; क्लिक = सच; क्लिक को सही सेट करने के लिए और फिर से अंतरिक्ष कुंजी को संसाधित करने के लिए figure1_KeyPressFcn अनुमति दें।
Comments
Post a Comment