2010-01-19 11 views
9

में इवेंट प्रचार, मेरे पास एक स्क्वाक मॉर्फिक जीयूआई के लिए एक छवि है जिसमें कुछ पारदर्शी भाग शामिल हैं और इस प्रकार किसी भी माउसवेन्ट इत्यादि को स्वीकार नहीं करना चाहिए, लेकिन केवल दृश्यमान होना चाहिए, लेकिन इसे अन्य morphs के सामने दिखाई देना चाहिए।एक मॉर्फिक जीयूआई

यही कारण है कि मैंने सोचा था कि अंतर्निहित मॉर्फों को दिखाई देने वाले माउसवेंट्स को प्रचारित करना उपयोगी होगा। क्या किसी को मेरी समस्या के समाधान या इसे हल करने के लिए एक और सुझाव पता है।

V       <- mouseDownEvent 
_____________________________ <- transparent image (BorderedMorph) 
    _____ _____  _____ 
_|  |___| |___|  |__ <- buttons waiting for click and drop events 

_____________________________ <- basic morph 

मुझे उम्मीद है कि मेरी समस्या का वर्णन करता है।

उत्तर

2

सबसे अच्छी बात मैं के बारे में सोच सकते हैं निम्नलिखित लाइनों के साथ कुछ

  1. रिकार्ड घटना, टैब पारदर्शी छवि दूर, और पुनरावृत्ति (चिकनाई के बढते क्रम, और काम करने के लिए संभावना के घटते क्रम में) है घटना। ऐसा करने के एक अक्षम और खराब तरीके की तरह लगता है।
  2. किसी भी तरह से अपने पारदर्शी छवि के पीछे ध्यान केंद्रित करने का ट्रैक रखें, और ईवेंट को पास करें। मैं प्रश्न में पुस्तकालयों से परिचित नहीं हूं, इसलिए मुझे नहीं पता कि ऐसा करना संभव है या नहीं। यदि आपके पास अन्य परतों पर नियंत्रण है, तो यह जाने का सबसे अधिक संभावना है। (आप उस माउसडाउनएवेंट के साथ अपने 'माउस इवेंट हुआ' फ़ंक्शंस को सीधे कॉल कर सकते हैं, हालांकि आपको अभी भी यह पहचानना है कि कौन सा इसे प्राप्त करेगा)।
  3. बस इसे ऐसा कुछ घोषित करें जो किसी भी स्तर पर उपलब्ध माउस ईवेंट को पास नहीं करता है। ओएसडी विंडोज़ ऐसा करते हैं, मुझे यकीन नहीं है कि कैसे। यदि आप इसे इस तरह से कर सकते हैं, तो मैं इसे सलाह दूंगा ... लेकिन यह देखते हुए कि आप यह सवाल पूछ रहे हैं, तो शायद आप नहीं कर सकते।
2

डिफ़ॉल्ट रूप से, मॉर्फिक माउस ईवेंट शीर्ष-मोर्फ़ में संभाले जाते हैं। हालांकि, माता-पिता morph #mouseDownPriority का उपयोग कर बच्चों को #mouseDown को अवरुद्ध करने में सक्षम है।

आपकी पारदर्शी छवि को सभी क्लिक मिलते हैं क्योंकि यह सबसे ज्यादा है। #rejectsEvent: पर एक नज़र डालें। घटनाओं को अस्वीकार करने के लिए यह #isLocked और #visible को जोड़ता है। यदि आप दिखाई दे तो भी घटनाओं को अस्वीकार करने के लिए आप इसे ओवरराइड करना चाह सकते हैं।

उदाहरण के लिए:

MyMorph>>rejectsEvent: anEvent 
^true "Ignores all events." 
संबंधित मुद्दे