新手问题在这里,因为我刚刚开始使用lime.js
进行游戏开发,但我在下面收到此错误,而我在生活中无法弄清楚为什么这个错误会说{{1}已经宣布了,因为我只提供了一次!
这是完整的错误:
'moba.Bullet'
在查看base.js中错误的位置时,我收到了以下代码:
Uncaught Error: Namespace "moba.Bullet" already declared.
goog.provide base.js:
(anonymous function)
我只提供名称空间一次!这使得这更令人困惑!!
要了解此问题,将有助于查看我的文件结构。
我的lime.js游戏的文件夹结构如下所示:
goog.provide = function(name) {
if (!COMPILED) {
// Ensure that the same namespace isn't provided twice.
// A goog.module/goog.provide maps a goog.require to a specific file
if (goog.isProvided_(name)) {
throw Error('Namespace "' + name + '" already declared.');
}
}
我甚至运行了bin / lime.py更新,因此moba.js(主要的js文件)会识别bullet.js!
现在我们来看看如何用goog.provide和goog.require调用每个文件。
limejs >
moba >
moba.html
moba.js
bullet.js
bin >
lime.py
projects
external >
closure
box2D
我不知道从哪里开始。我试过通过命令行重新创建项目,但没有爱。所以,请帮助并感谢您的帮助!
答案 0 :(得分:0)
我也是新手但是看了下面的代码我发现第一个if语句缺少结束标记:
goog.provide = function(name) {
if (!COMPILED) {
// Ensure that the same namespace isn't provided twice.
// A goog.module/goog.provide maps a goog.require to a specific file
if (goog.isProvided_(name)) {
throw Error('Namespace "' + name + '" already declared.');
}
}
有时忘记关闭if语句会导致很多问题。希望这会有所帮助。
答案 1 :(得分:0)
如果你看第一行你看到开始标记,那么if(!COMPILED)的第二行有一个开始标记,然后在第五行是if(goog.isProvided_(name))和另一个开始标记,但在该代码的末尾只有两个结束标签,我认为应该有第三个。