5

こんにちは私はConstruct2を使用してゲームを開発し、エクスポートされたプロジェクトに付属のメインHTMLページ内にAdControlを含めました。ゲームキャンバスから広告にドラッグしてリリースすると、実際にタッチがリリースされることはありません。私のゲームは特定のタッチに依存しているため、ユーザーが画面に触れるのをやめた場合にリセットするには、実際にそのタッチが必要です。ここで何かが足りないのですか、それともこの問題の回避策がありますか?WebBrowserコントロールを使用してC#で同じことを試しましたが、同じ問題は発生しませんでした。

HTMLフラグメントや、divをキャンバスからマージンで区切るなどのいくつかのことを試しましたが、常に同じように機能します。また、Windowsランタイムコンポーネントを使用して広告を含めようとしましたが、AdControlのようなUI要素を渡すことができるようには見えません。誰かがいくつかの提案がありますか?ありがとう。

4

3 に答える 3

3

これは、手を広告の上に移動したときにタッチを解放する実際の例です:http: //jsfiddle.net/ChaitanyaMunipalle/jn3kZ/

このjsfiddleでは、キャンバスの下にあるすべてのタッチイベントを確認できます。

HammerJをチェックして、ドラッグ、リリース、およびその他のタッチジェスチャを確認します。次のような通常のjqueryイベントのようなタッチイベントを使用できます

$('#canvasId').on('dragstart drag dragend release ....',callback);
于 2012-12-27T19:47:00.630 に答える
2

いくつかのおそらく関連する問題と解決策。

AdControlはFocusを制御します-2つの可能な解決策。

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

  2. もう少し効果的な回避策が見つかりました(これにより、AdControlを完全に有効のままにすることができます)。

    1. ""というブールフィールドを作成します_advertRefreshed
    2. イベントをApplyTemplatesフックしている間、 trueを設定します。AdControl.Refreshed_advertRefreshed
    3. 「現在のフォーカスがWebViewであり、 trueの場合、フォーカスを元に戻し、このテストに従うと、常にfalseになる」OnLostFocusというロジックを実装するイベントを追加します。_advertRefreshedset _advertRefreshed

KeyPressがAdControlに飲み込まれましたか?-上記の解決策1の問題と確認に関する議論。

MicrosoftAdControlがフォーカスを盗む-Windows8MonoGame

于 2012-12-22T05:45:32.913 に答える
2

可能な限り最良の答えを出すためにあなたのコードを見る必要がありますが、この問題はかなり一般的です。

このような設定がある場合(概念のデモンストレーションにjQueryを使用):

var mDown = false;

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

divの内側でマウスダウンし、その外側でmouseupを実行すると、そのdivがmouseupイベントを受信しないため、フラグがクリアされることはありません。

代わりに行う必要があるのは、mouseupイベントをウィンドウまたはドキュメントに添付することです。

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

次に、マウスボタンを離した場所に関係なく、「状態」をクリアします。

于 2012-12-27T18:39:54.827 に答える