1

作为 JavaScript 和 Haxe 的新手,这可能有一个简单的答案,但我发现 Haxe 在 GoogleCode for EaselJS 上有 externs 端口,但它们已经过时并且对应于早期版本。我已经能够修复在编译期间发生的错误,但我仍然担心我没有捕获所有新变量和函数名称。

我的问题是:有没有一种简单的方法可以为像 EaselJS 这样的大型 JS 库生成外部变量?

4

3 回答 3

1

您可能想看看 Joshua Granick 使用 BuildJS 所做的工作:

http://www.joshuagranick.com/blog/2011/10/14/use-buildjs-to-make-externs-for-haxe-js-automatically/

基本上有一个名为 JSDuck 的工具,它应该为 JavaScript 库编译文档,它可以输出到 JSON。他使用 JSON 的输出,结合他的“buildjs”库来构建 haxe externs。

他将它用于 Sencha Touch,我也将它用于 ExtJS,但它们都是 Sencha 产品,并且它们的编码风格可以与 JSDuck 一起使用。你可以用 EaselJS 试一试,如果它可以工作,那么 BuildJS 应该会生成非常准确的外部。

否则,您可能会尝试找到原始 EaselJS externs 的作者,看看他们是否可以提供更新,或者帮助您创建准确的更新。您可以使用邮件列表或 google 群组轻松联系大多数 haxe 开发人员:

http://groups.google.com/group/haxelang?hl=en

于 2012-01-19T01:15:59.920 回答
1

我的答案有点晚了,但你可以在这里找到 EaselJs 的最新(v0.5.0)外部:

https://github.com/Fintan/easelhx

我使用 BuildHx (https://github.com/jgranick/buildhx) 生成它们,它现在能够解析 YUIDoc 注释,然后通过移植 EaselJs 源代码附带的一些代码示例来测试它们。

于 2012-11-19T18:58:06.303 回答
0

是的,我确实尝试安装了 Joshua 的工具,但我遇到了 JSDuck 的问题。

在您链接到的示例中,JSDuck 应该有一个 --json 参数,但最新版本似乎已弃用它。我正在使用配置文件尝试其他一些:

{    
"--out": "out",
"--guides": "json",
"--warnings": ["all"],
"--": [
    "src/easeljs/"
]}

但这不起作用。无论我尝试什么,guides 参数似乎都失败了。

创建 json 文件给了我这个输出:

C:/Users/mycmp/AppData/Local/Temp/ocr374A.tmp/lib/ruby/gems/1.8/gems/jsduck-3.3.0/lib/jsduck/json_duck.rb:36:in `read': Permission denied - K:/Vault/Haxe/myproj/json (Errno::EACCES)

所以我不确定下一步该怎么做。让它为许多图书馆工作会很棒。

顺便说一句,我使用的是最新的 JSDuck 和 Windows 7。

于 2012-01-19T21:41:37.093 回答