2016-02-14 7 views
5

जब मैं एक नया हैमर पिंच घटना बनाता हूं, और विकल्पों में पॉइंटर्स की संख्या का उल्लेख नहीं करता है, तो यह केवल अधिकतम 3 अंगुलियों का पता लगाता है, और यदि मैं पॉइंटर्स उदाहरण का जिक्र करता हूंहैमर.जेएस: किसी भी संख्या/एकाधिक उंगलियों के साथ चुटकी का पता लगाने के लिए

var multiPinch = new Hammer.Pinch({event: 'multipinch', pointers: 4, threshold: 0}); 

, तो यह केवल 4 उंगलियों के साथ चुटकी का पता लगाता है। मैंने दस्तावेज़ों और हर जगह खोज करने की कोशिश की है, लेकिन एक घटना के साथ 2, 3, या यहां तक ​​कि 10 अंगुलियों के साथ चुटकी का पता लगाने में सक्षम नहीं हैं। मैं यह मेरी वेब एप्लिकेशन के रूप में 81 के रूप में विशाल के रूप में स्क्रीन पर काम करने के लिए है "की जरूरत है।

उत्तर

4

ठीक है मैंने अंततः इसे हल किया! मुझे नहीं पता कि यह एक हैक है लेकिन यह काम करता है! समाधान अंत में काफी सरल था और यह पॉइंटर्स विकल्प को 0, हाँ शून्य पर सेट करना था! http://hammerjs.github.io/recognizer-pinch/ जो संकेत दिए गए विकल्प के लिए कहते हैं::

var multiPinch = new Hammer.Pinch({event: 'multipinch', pointers: 0, threshold: 0}); 

अब, यह "multipinch" घटना 2 से 10

यह डॉक्स यहां से प्रेरित था को लेकर संकेत के किसी भी संख्या के साथ चुटकी का पता लगाता है

| Option | Default | Description        | 
|:--------:|---------|-----------------------------------------| 
| pointers | 1  | Required pointers. 0 for all pointers. | 

तो, मैंने चुटकी घटना के लिए पॉइंटर्स विकल्प 0 पर सेट करने की कोशिश की और लो, यह काम किया!

1

PinchRecognizer चेकों संकेत की संख्या आप वास्तव में क्या निर्दिष्ट किया जाना है। (यह वास्तव में सुपर क्लास AttrRecognizer में चेक किया गया है) तो यह वास्तव में आश्चर्य की बात है कि तुम 3 संकेत जब संकेत पैरामीटर निर्दिष्ट नहीं, वैसे भी पता लगाने के बाद से डिफ़ॉल्ट 2.

है, मैं दो समाधान देखते हैं। एक। अपने खुद के पिंच पहचानकर्ता बारे में बस Hammer.js स्रोत कोड में देख सकते हैं और संशोधित करने के लिए है मौजूदा एक, यह वास्तव में एक स्क्रीन से कम है। attrTest फ़ंक्शन वह है जो आप खोज रहे हैं। सुपर विधि (जो पॉइंटर्स की संख्या जांचता है) को कॉल न करें, बस जांचें कि पॉइंटर्स की संख्या कम या बराबर है आप जो चाहते हैं उसके लिए।

एक आसान समाधान है कि आप चाहते हैं कि प्रत्येक बिंदु के लिए एक PinchRecognizer परिभाषित करने के लिए एक आसान समाधान है। तो अगर आप 4 उंगलियों या उससे कम का पता लगाने के लिए चाहते हैं, इस तरह यह कार्य करें:

var mc = new Hammer.Manager(element); 

mc.add(new Hammer.Pinch({ event: 'pinch2', pointers: 2, threshold: 0 })); 
mc.add(new Hammer.Pinch({ event: 'pinch3', pointers: 3, threshold: 0 })); 
mc.add(new Hammer.Pinch({ event: 'pinch4', pointers: 4, threshold: 0 })); 

अस्वीकरण: मैं इस परीक्षण नहीं किया। सभी पहचानकर्ताओं को एक साथ जोड़ने के लिए आपको recognizeWith पर कॉल करना पड़ सकता है।

+0

आपके उत्तर के लिए धन्यवाद। अंत में मैंने इसे एक और तरीका हल किया। मेरा जवाब देखें! – Parth

+0

दूसरा समाधान बहुत बोझिल लगता है, क्योंकि मुझे प्रत्येक नंबर के लिए पहचानकर्ता लिखना होगा। 2-10 से पॉइंटर्स के, और फिर उन्हें संभाल लें। सौभाग्य से, पॉइंटर्स: 0 काम करता है अन्यथा मुझे पिंच पहचानकर्ता को संशोधित करने की आवश्यकता होगी। बीटीडब्लू, यह 3 पॉइंटर्स का पता लगाने के लिए वास्तव में आश्चर्यजनक है। – Parth

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