在"Try Haxe“(http://try.haxe.org)站点中,默认的示例测试代码如下:
class Test {
static function main(){
#if js
new js.JQuery("body").html("Haxe is great :)");
#elseif flash
trace("Haxe is great :)");
#end
}
}在该页面上运行它是非常直截了当的(可以选择“选项”并以"JS“或”SWF“为目标),输出为"SWF":
Test.hx:6: Haxe很棒:)
“JS”的输出如下:
哈克是伟大的:)
让我困惑的部分是javascript部分,因为当我自己在笔记本上编译源代码时,生成的test.js文件非常复杂,与显示在该页面上的"JS“完全不一样:
(function () { "use strict";
var Test = function() { };
Test.main = function() {
new js.JQuery("body").html("Haxe is great :)");
};
var js = {};
var q = window.jQuery;
js.JQuery = q;
Test.main();
})();我是否应该将Haxe编译的test.js的内容更改为上面的内容?另外,我不知道实际的index.html页面应该是什么样的,这样才能显示JavaScript输出"Haxe :)“的结果。任何关于index.html页面用于JavaScript示例输出的实际代码的提示都将不胜感激。
发布于 2014-02-22 17:18:05
这个问题是关于什么的还不清楚。
如果是关于
“我是否应该将haxe编译的"test.js”的内容更改为上面的内容?“
No,您不应该更改已编译的解决方案。
为什么?,因为每次您再次编译它时,都会重写它,这也取决于您所做的更改--您将对源文件进行日期更新。
对于HTML,您不需要特殊的设置,只需要调用test.js和依赖库的普通HTML。根据您的例子:
<html>
<head>
<title>Hello haxe :)</title>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script src="test.js"></script>
</head>
<body>
</body>
</html>发布于 2018-04-03 19:47:41
首先,您不应该更改haxe编译器为您生成的test.js文件的内容。如果给出相同的Haxe代码,JS不应该与在您自己的计算机上编译的.js文件不同.
如果您尝试过使用简单的html页面运行:
<!DOCTYPE html>
<html>
<head><meta charset="utf-8"/></head>
<body>
<script type="text/javascript" src="test.js"></script>
</body>
</html>如果页面上没有看到任何内容,请尝试打开控制台。你可能会发现“哈克斯棒极了!”你要找的人。如果您想要一个使用DOM的更具交互性的示例,请尝试以下.hx:
import js.Browser;
class Test {
static function main() {
var button = Browser.document.createButtonElement();
button.textContent = "Click me!";
button.onclick = function(event) {
Browser.alert("Haxe is great");
}
Browser.document.body.appendChild(button);
}
}确保将文件命名为test.hx
然后在相同的dir中运行一个.hxml文件来编译它,如下所示:
-js test.js
-main Test这应该会给您一个test.js,它曾经在index.html中链接过,就像我在顶部发布的那个一样,它在浏览器DOM中提供了一些东西。
如果您想了解更多关于编译到JS并在浏览器中运行的信息,我建议在这里进一步阅读:
https://haxe.org/manual/target-javascript-getting-started.html
干杯!
https://stackoverflow.com/questions/21955687
复制相似问题