这是我在这里的第一篇文章,但我很绝望。我用谷歌搜索,谷歌搜索,再谷歌搜索,但没有成功。如果有任何帮助或提示,我将不胜感激。
我正在开发一个 Adobe Air 应用程序(一个带有嵌入式关卡编辑器的 2D 拼图/ Action HTML4 + CSS + Javascript 游戏,适用于 Windows)。事实上,我的游戏快完成了,它在 IE9 和 Chrome 中都运行良好;但是,我想将它移植到 Air(出于多种原因),所以我安装了适用于 Dreamweaver 的 Adobe Air Extension v.3.3,并按照 Adobe 教程开始从 HTML 元素创建 Air 应用程序。
我可以毫无问题地生成 .air 文件,但似乎我的游戏一开始就卡住了。我验证了很多很多事情(不是说全部);我还放了各种 alert("works-check_1");通过我的所有代码,它在 Dreamweaver 中运行良好(但速度很慢)...但是 .air 文件将所有内容加载到页脚,然后在能够绘制第二帧之前卡住。 我得出的结论是,问题很可能源 self 在 .html 文件中使用的当前脚本来获取鼠标坐标(允许在关卡编辑器中进行拖放)。
这是我当前在 .html 文件部分中的脚本:
<script language="JavaScript1.2">
var IE = document.all?true:false;
if (!IE) document.captureEvents(Event.MOUSEMOVE)
document.onmousemove = getMouseXY;
var tempX = 0;
var tempY = 0;
function getMouseXY(e) {
if (IE) { // grab the x-y pos.s if browser is IE
tempX = event.clientX;
tempXb = event.clientX + document.body.scrollLeft;
tempY = event.clientY + document.body.scrollTop;
}
else { // grab the x-y pos.s if browser is NS
tempX = e.pageX;
tempY = e.pageY;
}
document.getElementById("xcoord").value = tempX;
document.getElementById("ycoord").value = tempY;
return true;
}
</script>
Adobe Air 似乎无法使用它,并且出现故障。 在 HTML/Javascript 中是否有任何其他简单的方法可以让我在 document.mousemove 上获取 X 和 Y 鼠标坐标,Air 允许吗?
最佳答案
没关系,这段代码在 Air 中就像一个魅力。我的游戏卡住了,因为我不得不使用这种语法:
setTimeout(alert('Timeout'), 10);
而不是这个:
setTimeout("alert('Timeout')", 10);
("") 不受航空安全措施的支持;它更喜欢传递一个函数,而不是一个字符串。
法语引用:http://help.adobe.com/fr_FR/AIR/1.5/devappsflash/WS5b3ccc516d4fbf351e63e3d118666ade46-7f0e.html
嗯!然而,即使我的游戏现在可以在 .air 中编译并且运行良好,它的运行速度也比直接在 IE9、Chrome 或 Safari 中慢得多。但是在 Safari 上,为了获得闪电般的 Javascript 性能,我不得不禁用首选项 > 安全中的所有内容,除了“允许 Javascript”。空气性能非常非常类似于我在禁用这些安全选项之前在 Safari 上的性能。顺便说一句,Titanium Appcelerator 为我的游戏提供了与 Adobe Air 完全相同的 Javascript 性能(帧率)。比起 Titanium,我更喜欢 Air,但我必须找到另一个 IDE 解决方案才能使用快速嵌入式 Javascript 引擎编译我的游戏,并且能够移植到其他平台……我很绝望!我想以与 IE9、Chrome 或经过调整的 Safari 相同的速度至少移植到其他平台上...没有达到我的预期,目前所有 IDE 都比我直接在其中获得的结果慢浏览器,这应该是等价的:(
关于javascript - 如何在 Adobe Air Extension for Dreamweaver 3.3 下的 Javascript 中获取鼠标坐标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10393460/