2012-02-08 14 views
6

पर फ़ज़ी बनने का कारण बनता है, मैं वर्तमान में अपने गेम के लिए अपने डिवाइस (सैमसंग गैलेक्सी एस 2) पर टचस्टार्ट कार्यक्षमता का परीक्षण कर रहा हूं। का कारण बनता है (हमले कार्रवाई करने के लिए कुछ जावास्क्रिप्ट को चलाने के लिए जैसे एक हमले बटन ट्रिगर "touchstart" घटना)टचस्टार्ट का उपयोग कर स्क्रीन को टचस्टार्ट

  • मेरे स्पर्श शुरू घटना: मैं इस प्रकार मुद्दों कर जावास्क्रिप्ट और jQuery एंड्रॉयड में phonegap तहत लिपटे का उपयोग कर प्रोग्रामिंग और वर्तमान में कर रहा हूँ मेरी स्क्रीन अस्थायी रूप से अस्पष्ट हो गई है, फिर एक सेकंड से भी कम समय में सामान्य हो गई है, इसलिए एक स्क्रीन झिलमिलाहट की तरह, जहां छवियां झटकेदार हो जाती हैं)। मैं सीएसएस ट्रांसफॉर्म या संक्रमण केवल सादे सीएसएस और छवियों का उपयोग नहीं कर रहा हूं।

क्या कोई मुझे बता सकता है कि क्या मुझे मेरे लिए अधिक समान मुद्दों का सामना करना पड़ा है। नुकसान में थोड़ा सा यह हार्डवेयर या टचस्टार्ट मुद्दा है जहां मैं उस समस्या को हल कर सकता हूं।

नीचे नमूना जावास्क्रिप्ट मेरी नेविगेशन नियंत्रण (बाएं, ऊपर, नीचे, सही touchstart नल) के लिए:

if ('ontouchstart' in document.documentElement) { 
     var left = document.getElementById('left'); 
     left.addEventListener("touchstart", function(e){ 
      if(controlsPlayerChar == '') 
      { 
       return false; 
      } 

      var l_oldCell = $('#' + controlsPlayerChar).parent().attr('id'); 
      var l_xy = l_oldCell.split('_'); 
      var l_x = l_xy[0]; 
      var l_y = l_xy[1]; 

      if(l_y == 1) 
      { 
       direction = "left"; 
       setCharDynamics(controlsPlayerChar); 
       return false; 
      } 

      var l_newCell = l_x + '_' + (parseInt(l_y) - 1); 

      // validate if next cell is empty 
      if($('#' + l_newCell + ':has(".shadow")').val() != undefined 
      || $('#' + l_newCell + ':has(".ally")').val() != undefined 
      || $('#' + l_newCell + ':has(".obstacle")').val() != undefined) 
      { 
       direction = "left"; 
       setCharDynamics(controlsPlayerChar); 
       return false; 
      } 

      $('#' + l_newCell).append($('#' + controlsPlayerChar)); 
      $('#' + l_oldCell + ' ' + '#' + controlsPlayerChar).remove(); 

      // set char direction to 'left' and set next footstep 
      setDirection('left'); 
      setFootstep(footstep); 
      setCharDynamics(controlsPlayerChar); 
     }); 

     var up = document.getElementById('up'); 
     up.addEventListener("touchstart", function(e){ 
      if(controlsPlayerChar == '') 
      { 
       return false; 
      } 

      var u_oldCell = $('#' + controlsPlayerChar).parent().attr('id'); 
      var u_xy = u_oldCell.split('_'); 
      var u_x = u_xy[0]; 
      var u_y = u_xy[1]; 

      if(u_x == 1) 
      { 
       direction = "up"; 
       setCharDynamics(controlsPlayerChar); 
       return false; 
      } 

      var u_newCell = (parseInt(u_x) - 1) + '_' + u_y; 

      // validate if next cell is empty 
      if($('#' + u_newCell + ':has(".shadow")').val() != undefined 
      || $('#' + u_newCell + ':has(".ally")').val() != undefined 
      || $('#' + u_newCell + ':has(".obstacle")').val() != undefined) 
      { 
       direction = "up"; 
       setCharDynamics(controlsPlayerChar); 
       return false; 
      } 

      $('#' + u_newCell).append($('#' + controlsPlayerChar)); 
      $('#' + u_oldCell + ' ' + '#' + controlsPlayerChar).remove(); 

      // set char direction to 'up' and set next footstep 
      setDirection('up'); 
      setFootstep(footstep); 
      setCharDynamics(controlsPlayerChar); 
     }); 

     var down = document.getElementById('down'); 
     down.addEventListener("touchstart", function(e){ 
      if(controlsPlayerChar == '') 
      { 
       return false; 
      } 

      var d_oldCell = $('#' + controlsPlayerChar).parent().attr('id'); 
      var d_xy = d_oldCell.split('_'); 
      var d_x = d_xy[0]; 
      var d_y = d_xy[1]; 

      if(d_x == rows) 
      { 
       direction = "down"; 
       setCharDynamics(controlsPlayerChar); 
       return false; 
      } 

      var d_newCell = (parseInt(d_x) + 1) + '_' + d_y; 
      // validate if next cell is empty 
      if($('#' + d_newCell + ':has(".shadow")').val() != undefined 
      || $('#' + d_newCell + ':has(".ally")').val() != undefined 
      || $('#' + d_newCell + ':has(".obstacle")').val() != undefined) 
      { 
       direction = "down"; 
       setCharDynamics(controlsPlayerChar); 
       return false; 
      } 

      $('#' + d_newCell).append($('#' + controlsPlayerChar)); 
      $('#' + d_oldCell + ' ' + '#' + controlsPlayerChar).remove(); 

      // set char direction to 'down' and set next footstep 
      setDirection('down'); 
      setFootstep(footstep); 
      setCharDynamics(controlsPlayerChar); 
     }); 

     var right = document.getElementById('right'); 
     right.addEventListener("touchstart", function(e){ 
      if(controlsPlayerChar == '') 
      { 
       return false; 
      } 

      var r_oldCell = $('#' + controlsPlayerChar).parent().attr('id'); 
      var r_xy = r_oldCell.split('_'); 
      var r_x = r_xy[0]; 
      var r_y = r_xy[1]; 
      if(r_y == cols) 
      { 
       direction = "right"; 
       setCharDynamics(controlsPlayerChar); 
       return false; 
      } 

      var r_newCell = r_x + '_' + (parseInt(r_y) + 1); 

      // validate if next cell is empty 
      if($('#' + r_newCell + ':has(".shadow")').val() != undefined 
      || $('#' + r_newCell + ':has(".ally")').val() != undefined 
      || $('#' + r_newCell + ':has(".obstacle")').val() != undefined) 
      { 
       direction = "right"; 
       setCharDynamics(controlsPlayerChar); 
       return false; 
      } 

      $('#' + r_newCell).append($('#' + controlsPlayerChar)); 
      $('#' + r_oldCell + ' ' + '#' + controlsPlayerChar).remove(); 

      // set char direction to 'right' and set next footstep 
      setDirection('right'); 
      setFootstep(footstep); 
      setCharDynamics(controlsPlayerChar); 
     }); 
} 

कृपया मुझे पता अगर आपको लगता है कुछ भी ऊपर स्क्रिप्ट के संबंध में गलत है करते हैं। जिस तरह से मैं टचस्टार्ट ईवेंट जोड़ता हूं वह मेरी स्क्रिप्ट के अन्य क्षेत्रों में समान होता है जब उदाहरण के लिए हमला शुरू करने या विकल्प मेनू लॉन्च करने के लिए।

+0

हा, मुझे अभी एहसास हुआ कि यह तब होता है जब मैं मोबाइल स्क्रीन पर कहीं भी टैप करता हूं। तत्काल अस्पष्ट प्रभाव तब होता है जब मैं अपनी मोबाइल स्क्रीन पर कहीं भी स्पर्श करता हूं। –

+0

आपकी समस्या फोनगैप का उपयोग कर रही है! यह डरावना है। लेकिन वैसे भी, जैसा कि अन्य उपयोगकर्ताओं ने कहा है, आपको कुछ कोड या अधिक जानकारी प्रदान करने की आवश्यकता है। –

उत्तर

1

लगता है कि यह है हाइलाइटिंग टैप करें।

आप अपने प्रभाव पर -webkit-tap-highlight-color सीएसएस संपत्ति लागू करने या * चयनकर्ता का उपयोग कर सभी तत्वों में इसे अक्षम करने के लिए इस प्रभाव को अक्षम करने का प्रयास कर सकते हैं।

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

.someelement { 
    -webkit-tap-highlight-color: transparent; 
} 
+0

धन्यवाद लेकिन यह काम नहीं किया। मेरी छवियों को हाइलाइट नहीं किया जा रहा है, लेकिन एक टीवी चैनल की तरह झटकेदार/अस्पष्ट एक सही चैनल को ट्यून करते समय पूरी तरह स्पष्ट नहीं है हालांकि यह केवल क्षणिक (टचस्टार्ट पर) होता है। –

1

हम जब translate3d परिवर्तनों का उपयोग कर इस मुद्दे में भाग गए हैं।

हम इसे

* { -webkit-transform: translate3d(0,0,0,); } 

की स्थापना ताकि हर तत्व 3 डी अंतरिक्ष

+0

ने कोशिश की। समस्या को ठीक नहीं किया। अभी भी टचस्टार्ट पर jittery स्क्रीन दिखा रहा है। –

+0

तो इसके लिए डीबग करने में सक्षम होने के लिए कुछ स्रोत HTML/css/js की आवश्यकता होगी –

1

सबसे पहले के लिए आरंभ नहीं हो जाता, सुनिश्चित करें कि आप घटना पर preventDefault() बुला रहे हैं बनाने के द्वारा तय की। मैंने देखा है कि यदि आप माउस की घटनाओं को भी लक्षित कर रहे हैं, तो वे स्पर्श पर आग लग सकते हैं। अन्यथा, मैं स्पर्श हाइलाइटिंग अक्षम करने की एक अलग विधि का उपयोग करता हूं। आज़माएं:

-webkit-tap-highlight-color: rgba(0,0,0,0); 

आपके बटन के लिए सीएसएस में।

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

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