如何在 Adobe Air Extension for Dreamweaver 3.3 下的 Javascript 中获



这是我在这里的第一篇文章,但我非常绝望。我用谷歌搜索,谷歌搜索,再谷歌,但没有成功。我将非常感谢任何帮助或提示。

我正在开发一个Adobe Air应用程序(一个2D拼图/动作HTML4 + CSS + Javascript游戏,带有嵌入式关卡编辑器,适用于Windows(。事实上,我的游戏几乎完成了,它在IE9和Chrome中都运行得很好;但是,我想将其移植到 Air(出于多种原因(,因此我为 Dreamweaver 安装了 Adobe Air Extension v.3.3,并按照 Adobe 教程介绍了从 HTML 项目创建 Air 应用程序的入门教程。

我可以毫无问题地生成 .air 文件,但是我的游戏似乎在开始时就冻结了。我验证了很多很多很多事情(不是说全部(;我还放了各种警报("作品-check_1"(;通过我代码的所有部分,它在 Dreamweaver 中运行良好(但很慢(......但是.air文件将所有内容加载到页脚,然后在能够绘制第二帧之前冻结。我得出的结论是,问题很可能源于我在.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性能(帧率(。我更喜欢Air而不是Titanium,但我必须找到另一个IDE解决方案,以便使用快速和嵌入式Javascript引擎编译我的游戏,并且能够移植到其他平台。我绝望了!我想以至少与IE9,Chrome或调整的Safari相同的速度移植到其他平台上...没有什么符合我的期望,所有 IDE 目前都比我直接在浏览器中获得的结果慢,这应该等同于:(

最新更新