【问题标题】:goog.provide() - Uncaught SyntaxError: Unexpected token ILLEGALgoog.provide() - Uncaught SyntaxError: Unexpected token ILLEGAL
【发布时间】:2014-04-06 19:04:51
【问题描述】:

所以我今天决定稍微玩一下 LimeJS,我以前从未使用过 Closure,所以这对我来说也是新的。我马上就遇到了一个小问题,不知道出了什么问题。

目前我的项目只有三个文件:firstGame.htmlfirstGame.js、`player.js

firstGame.html:

<!DOCTYPE HTML>

<html>
<head>
    <title>firstGame</title>
    <script type="text/javascript" src="../closure/closure/goog/base.js"></script>
    <script type="text/javascript" src="firstGame.js"></script>
    <script type="text/javascript" src="player.js"></script>
</head>

<body onload="firstGame.start()"></body>

</html>

firstGame.js:

goog.provide('firstGame');


//get requirements
goog.require('lime.Director');
goog.require('lime.Scene');
goog.require('lime.Layer');
goog.require('lime.Circle');
goog.require('lime.Label');
goog.require("lime.Sprite");
goog.require('lime.animation.Spawn');
goog.require('lime.animation.FadeTo');
goog.require('lime.animation.ScaleTo');
goog.require('lime.animation.MoveTo');
goog.require("firstGame.Player");


// entrypoint
firstGame.start = function(){

    var director = new lime.Director(document.body,1024,768);
    director.makeMobileWebAppCapable();
    scene = new lime.Scene();
    var background = new lime.Sprite().setSize(1524,768).setPosition(0,0).setFill(0,0,0).setAnchorPoint(0,0);
    var player = new firstGame.Player();
    scene.appendChild(background);
    // set current scene active
    director.replaceScene(scene);

}


//this is required for outside access after code is compiled in ADVANCED_COMPILATIONS mode
goog.exportSymbol('firstGame.start', firstGame.start);

最后是 player.js(这个想法是一个自定义的 ui 组件,所以我继承自 Sprite):

goog.provide("firstGame.Player');


goog.require('lime.Sprite');

// new constructor
firstGame.Player = function(){
    // call parents constructor
    goog.base(this);

    // custom initialization code
    this.color_ = 'red';
}
// define parent class
goog.inherits(firstGame.Player,lime.Sprite);

然后我运行了lime.py update(不确定是否需要,因为我只是添加了一个类而不是一个全新的命名空间,但我认为我应该只是为了安全起见)

当我加载页面时,出现上述意外令牌错误,这发生在 player.js 的第 1 行,goog.provide()。现在,如果我从我的 html 文件的脚本路径中删除 player.js,我发现我的其他代码运行正常,这表明我正在按预期链接到 Closure 库。只是当我尝试在 player.js 中使用它时,我遇到了问题。我的第一个倾向是代码可能在解析闭包库之前执行,当闭包加载但找不到任何东西时,我寻找了一些挂钩。我用谷歌搜索并没有找到答案。我觉得我错过了一些简单但无法完全理解的东西。如果有人有任何建议,我将不胜感激,非常感谢!

【问题讨论】:

    标签: javascript google-closure limejs


    【解决方案1】:
    goog.provide("firstGame.Player');
    

    应该是

    goog.provide('firstGame.Player');
    

    你的 qoutes 不匹配。

    【讨论】:

    • 我怎么没看到?谢谢!
    猜你喜欢
    • 2012-11-20
    • 2012-01-30
    • 2011-12-01
    • 1970-01-01
    • 2012-09-12
    • 2012-09-22
    • 1970-01-01
    • 2013-06-19
    相关资源
    最近更新 更多