2012-12-19 4 views
5

こんにちは私はConstruct2を使ってゲームを開発し、エクスポートされたプロジェクトに付属するメインHTMLページ内にAdControlを含めました。今、私はあなたがゲームのキャンバスから広告にドラッグしてリリースするときに気づきました。実際にタッチを放つことはありません。私のゲームは特定のタッチに依存しているので、ユーザーが画面に触れなくても実際にはタッチをリセットする必要があります。私はここで何かを見逃しているのでしょうか、あるいはこの問題の回避策がありますか?私はWebBrowserコントロールを使用してC#で同じことを試しましたが、同じ問題は発生しませんでした。ユーザーがHTML5/Javascriptアプリケーションのadcontrolにドラッグしたときの検出?

私は、HTMLフラグメントのようないくつかのことを試して、余白を付けてdivをキャンバスから分離していますが、常に同じように機能します。また、Windowsランタイムコンポーネントを使用して広告を挿入しようとしましたが、AdControlのようなUI要素を渡すことはできません。誰にでもいくつかの提案がありますか?ありがとう。

+0

のような通常のjQueryのイベントのようなタッチイベントを使用することができます。http://www.html5rocks.com/en/mobile/touch/あなたがあなたであるイベントのどのような を使用して? mouseClick、mouseOver ...を使用していますか? –

答えて

3

は手が広告の上に移動されたタッチを解除する実施例です。

ドラッグ、リリース、その他のタッチジェスチャーについては、HammerJsを確認してください。あなたはおそらくこれを読む必要がタッチの話

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

多分関連する問題と解決策。

AdControl takes control over Focus - 2つの可能な解決策。

  1. はfalseにIsEnabledプロパティを設定してみてください。

  2. (あなたが完全に有効に AdControlを残すことができます)もう少し効果的な回避策を見つけました。

    1. _advertRefreshed」と呼ばれるブールフィールドを作成します。
    2. ApplyTemplatesの間にAdControl.Refreshedイベントをフックし、_advertRefreshedをtrueに設定します。
    3. は、「現在の焦点はWebViewのであり、_advertRefreshedが真のセットが再び常にset _advertRefreshed偽 このテストを以下、 元に戻って焦点を当てている場合は、」ロジックを実装OnLostFocusイベントを追加します。

    KeyPress swallowed by AdControl?

- 上記溶液#1上の問題及び確認に関する議論。

Microsoft AdControl stealing focus - Windows 8 MonoGame

+0

ご回答いただきありがとうございます。残念ながら、このソリューションはXAMLアプリケーションにのみ適用され、私のゲームで現在使用しているHTML5/JavaScriptテンプレートには適用されません。私はHTMLのAdControlをチェックしましたが、有効なプロパティはありませんでした。 – loyalpenguin

+0

あなたは 'IsEngagedChanged'イベントを調べましたか? http://msdn.microsoft.com/en-us/library/advertising-mobile-windows-phone-adcontrol-silverlight-isengagedchanged-event(v=msads.20).aspx – JSuar

+0

私は持っています。私はそれをどのように使うことができるかわからない。何か案は?おそらくイベントをキャンセルしようと思うでしょう。 – loyalpenguin

2

私はあなたに可能な限り最高の答えを与えるためにあなたのコードを参照する必要があると思いますが、この問題はかなり一般的です。あなたは(概念実証のためのjQueryを使用して)このような設定がある場合は

:あなたはdivの内のMouseDownが、それ以外でのmouseUp場合、ある何が起こる

var mDown = false; 

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

を、フラグがあるためにクリアされることはありませんそのdivはmouseupイベントを受け取ることはありません。あなたが代わりに行うために必要なもの

は、ウィンドウやドキュメントにmouseUpイベントを添付します:

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

それは、その後に関係なく、あなたがマウスボタンを離したところ、その「状態」をクリアします。http://jsfiddle.net/ChaitanyaMunipalle/jn3kZ/

あなたはこのjsfiddleでキャンバスの下にあるすべてのタッチイベントを見ることができます:ここで

関連する問題