2009-10-15 11 views
9

हालांकि फ्लैश में माउस व्हील इवेंट (MouseEvent.MOUSE_WHEEL) है, यह कुछ समस्याएं आती है।फ्लैश: पूर्ण स्क्रीन मोड (विंडोज़ और मैक) में माउस व्हील इवेंट्स का उपयोग करना

पहला यह है कि ईवेंट मैक पर अभी तक समर्थित नहीं है। तो solutions का एक गुच्छा है, जिसमें से सभी (मूल रूप से) जावास्क्रिप्ट में mousewheel (या DOMMouseScroll) ईवेंट को कैप्चर करते हैं और इसे फ्लैश ऐप में पास करते हैं। सौभाग्य से, मैंने परीक्षण किए गए सभी मैक ब्राउज़र के तहत, यह तब भी काम करता है जब फ़्लैश पूर्णस्क्रीन मोड में होता है।

समस्या 2 यह है कि फ़्लैश छोटे "डेल्टा" के साथ माउस व्हील घटनाओं को अनदेखा करता है। उदाहरण के लिए, माइक्रोसॉफ्ट के IntelliPoint Mice with "Smooth Scroll" इस समस्या का कारण बनता है। इसका समाधान मैक के समाधान के समान है ... यानी ब्राउज़र में जावास्क्रिप्ट माउस व्हील इवेंट कैप्चर करें और इसे ऐप पर पास करें। समस्या यह है कि मैंने विंडोज़ में ब्राउज़र (फ़ायरफ़ॉक्स, यानी, सफारी, और क्रोम) का ब्राउज़र देखा है, जब फ्लैश पूर्ण स्क्रीन मोड में होता है तो वे इस घटना को कैप्चर नहीं करते हैं। क्या किसी को पता है कि इसे क्यों ठीक किया जाए या कैसे?

मैं वर्तमान में एक संकर समाधान है कि हमेशा जब यह (जो उस समय फ़्लैश माउसव्हील घटना से उन्हें ले जाता है) विंडोज पर पूर्ण स्क्रीन मोड में छोड़कर (गैर फुलस्क्रीन या पूर्ण स्क्रीन मोड में) जावास्क्रिप्ट से घटनाओं लेता है। तो विंडोज़ पर विंडोज़ पर पूर्ण स्क्रीन मोड में यह एकमात्र बार विफल रहता है जिसमें छोटे डेल्टा होते हैं। किसी के पास पूर्ण समाधान है? या सिर्फ एक बेहतर है?

उत्तर

3

यह एडोब के जेरा पर एक ज्ञात मुद्दा है। आपको इसे ठीक करने के लिए इंतजार करना होगा, या MouseEvent.MOUSE_WHEEL के बजाय किसी अन्य ईवेंट का उपयोग करना होगा। यह विंडोज़ पर काम नहीं कर रहा है क्योंकि फ्लैश प्लेयर कार्यान्वयन मैक और लिनक्स से विंडोज़ में पूरी तरह से अलग है। प्लगइन हैंडल को लागू करने के लिए मैक और लिनक्स जीटीके का उपयोग करता है। विंडोज़ पर यह Win32API कॉमन एचडब्ल्यूएनडी का उपयोग करता है, जो पूर्ण स्क्रीन मोड पर फ़ोकस चुराता है, जिससे ब्राउजर पर स्क्रॉल इवेंट्स को प्रेषित नहीं किया जाता है। मैक और लिनक्स पर, जीटीके प्लगइन आकार को डेस्कटॉप के आकार में खींचता है, और वास्तविक फुलस्क्रीन नहीं करता है। यह इन प्रणालियों के अंदर एक जीटीके व्यवहार है। कुछ भी नहीं किया जा सकता है।

0

आपका समाधान सबसे अच्छा है। केवल एक बेहतर है - माउस व्हील का उपयोग नहीं करते :(

एडोब यह (और अन्य नियंत्रकों के लिए समर्थन के साथ) के साथ कुछ करना चाहिए

0

MouseEvent.MOUSE_WHEEL पर्व बीटा और 10.1 के बाद से मैक पर ठीक से काम करने लगता है। फाइनल। मैं सफारी और क्रोम दोनों में जादू माउस और ट्रैक पैड का उपयोग करके माउस व्हील इवेंट ट्रिगर कर सकता हूं।

0

Pixelbreaker's MacMouseWheel ने मुझे मैक पर पूर्णस्क्रीन स्क्रॉलिंग सफलता दी है, लेकिन मैंने इसे थोड़ी देर में उपयोग नहीं किया है (सफारी 5 पर उदाहरण के लिए)

नकारात्मकता यह है कि यह पूरे पृष्ठ के लिए ईवेंट कैप्चर करता है, तो आप एचटीएमएल के लिए स्क्रॉलिंग खोना भले ही फ़्लैश तत्व स्क्रीन पर केवल एक छोटा सा बॉक्स है।

लेकिन आप मूल रूप से जो भी बना चुके हैं उसके बीच स्विच कर सकते हैं, और जब आप पूर्ण स्क्रीन सक्षम करते हैं तो मैकमोउसहेल.जेएस में वह क्या उपयोग कर रहा है।

आशा है कि मदद करता है, शुभकामनाएँ।

0

आप http://blog.earthbrowser.com/2009/01/simple-solution-for-mousewheel-events.html पर सरल AS3 क्लास MacMouseWheelHandler का उपयोग करने का प्रयास कर सकते हैं जो इसे बनाता है ताकि आपको Javascrpt के साथ एकीकृत करने की आवश्यकता न हो। यह एक्शनस्क्रिप्ट से जावास्क्रिप्ट को इंजेक्ट करता है।

संबंधित मुद्दे