您好我使用Construct2开发了一款游戏,并在导出项目附带的主html页面中包含了一个AdControl。现在我注意到当你从游戏画布拖到广告和发布时,它实际上从未实现过触摸。我的游戏取决于特定的触摸,所以如果用户停止触摸屏幕,我实际上需要重置该触摸。我在这里遗漏了什么,或者是否有解决这个问题的方法?我在C#中使用WebBrowser控件尝试了同样的事情,但我没有遇到同样的问题。
我尝试了一些像HTML片段这样的东西,并将div与画布分开,但它总是以相同的方式运行。我还尝试使用Windows运行时组件包含广告,但它看起来不像允许您传递AdControl等UI元素。有没有人有一些建议。感谢。
答案 0 :(得分:3)
这是一个工作示例,当手移到广告上时会释放触摸:http://jsfiddle.net/ChaitanyaMunipalle/jn3kZ/
你可以在这个jsfiddle中看到画布下面的所有触摸事件。
检查HammerJs是否有拖动,释放和其他触摸手势。您可以使用触摸事件,如正常的jquery事件,如
$('#canvasId').on('dragstart drag dragend release ....',callback);
答案 1 :(得分:2)
一些可能相关的问题和解决方案。
AdControl takes control over Focus - 两种可能的解决方案。
尝试将IsEnabled属性设置为false。
找到一种稍微有效的解决方法(让你离开 AdControl完全启用)。
- 创建一个名为“
_advertRefreshed
”的布尔字段。- 在
ApplyTemplates
挂钩AdControl.Refreshed
事件期间,设置_advertRefreshed
为真。- 添加
醇>OnLostFocus
事件,该事件实现逻辑“如果当前焦点是WebView并且_advertRefreshed
是真实设置焦点回到 原来,然后跟着这个测试总是set _advertRefreshed
假 试”。
KeyPress swallowed by AdControl? - 关于上述解决方案#1的问题和确认的讨论。
答案 2 :(得分:2)
我需要看到你的代码给你最好的答案,但这个问题很常见。
如果您有这样的设置(使用jQuery进行概念演示):
var mDown = false;
$("#myDiv").mouseDown(function(){
mDown = true;
}).mouseMove(function(e){
if (mDown)
// do stuff
}).mouseUp(function(){
mDown = false;
});
如果您在div内部进行了moused,但是在它之外的mouseup,则该标志永远不会被清除,因为该div从未接收到mouseup事件。
您需要做的是将mouseup事件附加到窗口或文档:
$(window).mouseUp(function(){
mDown = false;
});
无论您在何处释放鼠标按钮,它都会清除其“状态”。