2012-12-19 28 views
5

हाय मैंने निर्माण 2 का उपयोग करके एक गेम विकसित किया और निर्यातित परियोजना के साथ आए मुख्य HTML पृष्ठ के अंदर एक एडकंट्रोल शामिल किया। अब मैंने देखा है कि जब आप खेल कैनवास से विज्ञापन और रिलीज पर खींचते हैं, तो यह वास्तव में स्पर्श को कभी जारी नहीं करता है। मेरा गेम एक विशेष स्पर्श पर निर्भर है, इसलिए यदि उपयोगकर्ता स्क्रीन को छूने से रोकता है तो मुझे रीसेट करने के लिए वास्तव में उस स्पर्श की आवश्यकता होती है। क्या मैं यहां कुछ याद कर रहा हूं, या शायद इस मुद्दे के लिए एक समाधान है? मैंने WebBrowser नियंत्रण का उपयोग करके सी # में एक ही चीज़ की कोशिश की और मुझे एक ही समस्या का अनुभव नहीं हुआ।यह पता लगाना कि जब कोई उपयोगकर्ता किसी HTML5/जावास्क्रिप्ट ऐप में किसी विज्ञापन नियंत्रण पर ड्रैग करता है?

मैंने HTML टुकड़ों जैसी कुछ चीजों की कोशिश की है और div को मार्जिन के साथ कैनवास से अलग किया है लेकिन यह हमेशा एक ही तरीके से कार्य करता है। मैंने विंडोज रनटाइम घटक का उपयोग करके विज्ञापन शामिल करने का भी प्रयास किया लेकिन ऐसा नहीं लगता है कि यह आपको एडकंट्रोल जैसे UI तत्वों को पारित करने की अनुमति देता है। क्या किसी के पास कुछ सुझाव हैं। धन्यवाद।

+0

छूता है के बारे में बात सामान्य jQuery की घटनाओं की तरह स्पर्श इवेंट का उपयोग कर सकते तो आप शायद इस पढ़ने की जरूरत है: http://www.html5rocks.com/en/mobile/touch/ घटनाओं आप किस तरह आप कर रहे हैं उपयोग कर रहे हैं? क्या आप माउसक्लिक, माउसओवर ... का उपयोग कर रहे हैं? –

उत्तर

3

यहाँ एक काम कर उदाहरण जो स्पर्श जब हाथ विज्ञापन पर ले जाया जाता विज्ञप्ति है।

ड्रैग, रिलीज और अन्य स्पर्श संकेतों के लिए हैमरजेस की जांच करें। आप की तरह

$('#canvasId').on('dragstart drag dragend release ....',callback); 
2

कुछ संभावित समस्याएं और समाधान।

AdControl takes control over Focus - दो संभावित समाधान।

  1. कोशिश गलत पर IsEnabled गुण सेट करने के लिए।

  2. एक से थोड़ा अधिक प्रभावी तरीके को (जो आप AdControl पूरी तरह से सक्षम छोड़ देता है) मिले।

    1. "_advertRefreshed" नामक एक बूलियन फ़ील्ड बनाएं।
    2. ApplyTemplates के दौरान AdControl.Refreshed ईवेंट हुक, _advertRefreshed सत्य सेट करना।
    3. एक OnLostFocus घटना है जो तर्क को लागू करता है "अगर मौजूदा फोकस WebView और _advertRefreshed सच सेट मूल करने के लिए वापस ध्यान देते हैं, तो फिर इस परीक्षण निम्नलिखित हमेशा set _advertRefreshed झूठी है" जोड़ें।

KeyPress swallowed by AdControl? - ऊपर # 1 समाधान पर इस मुद्दे और पुष्टि पर चर्चा।

Microsoft AdControl stealing focus - Windows 8 MonoGame

+0

प्रतिक्रिया के लिए धन्यवाद, दुर्भाग्य से यह समाधान केवल एक्सएएमएल अनुप्रयोगों पर लागू होता है, न कि HTML5/जावास्क्रिप्ट टेम्पलेट जो मैं वर्तमान में अपने गेम के लिए उपयोग कर रहा हूं। हालांकि मैंने HTML के लिए AdControl जांच की थी, लेकिन कोई सक्षम प्रॉपर्टी नहीं थी। – loyalpenguin

+0

क्या आपने 'IsEngagedChanged' ईवेंट में देखा है? http://msdn.microsoft.com/en-us/library/advertising- मोबाइल- विन्डोज़-phone-adcontrol-silverlight-isengagedchanged-event(v=msads.20).aspx – JSuar

+0

मेरे पास है। यकीन नहीं है कि मैं इसका उपयोग कैसे कर सकता हूं। कोई विचार? मुझे लगता है कि हम शायद घटना को रद्द करने का प्रयास करेंगे। – loyalpenguin

2

मैं आप सबसे अच्छा जवाब संभव देने के लिए अपने कोड देखने की जरूरत हैं, लेकिन इस समस्या को काफी आम है।

आप इस (अवधारणा प्रदर्शन के लिए jQuery का उपयोग) की तरह एक सेटअप है:

var mDown = false; 

$("#myDiv").mouseDown(function(){ 
    mDown = true; 
}).mouseMove(function(e){ 
    if (mDown) 
     // do stuff 
}).mouseUp(function(){ 
    mDown = false; 
}); 

क्या होता है, अगर आप div के अंदर mousedown, लेकिन इसके बारे में बाहर mouseup, झंडा क्योंकि मंजूरी दे दी कभी नहीं किया गया है कि div कभी माउसअप घटना प्राप्त नहीं करता है।

$(window).mouseUp(function(){ 
    mDown = false; 
}); 

यह तो अपने "राज्य" स्पष्ट है जहाँ आप माउस बटन छोड़ें की परवाह किए बिना होगा:

क्या आप के बजाय क्या करने की जरूरत खिड़की या दस्तावेज़ में mouseup घटना देते है।http://jsfiddle.net/ChaitanyaMunipalle/jn3kZ/

आप इस jsfiddle में कैनवास नीचे सभी स्पर्श ईवेंट देख सकते हैं:

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

  • कोई संबंधित समस्या नहीं^_^