我在 CreateJS 中遇到错误:"createjs is not defined"

I get an error in CreateJS: "createjs is not defined"

我有一个问题creatJS希望你能帮忙。

 var stage = new createjs.Stage(canvas);

我遇到了这个错误:

angular.js:13642 ReferenceError: createjs is not defined. even thought i get the EaselJS in my bower-components.

谢谢

我假设 createjs 是在 window 对象中定义的。要在 angular js 中访问,您需要像这样注入它:

  angular.module('myApp', [])
  .constant('createjs', window.createjs)

然后你可以将它注入你的控制器,例如:

controller: function(createjs) {
  var stage = new createjs.Stage(canvas);
}

您也可以使用 $window 来引用它:

controller: function($window) {
  var stage = new $window.createjs.Stage(canvas);
}

我刚刚对其进行了一些测试,我验证是否注入了用于 createjs 的库 EaselJS 但它没有注入到 Bower.json 文件中。所以我不得不在 bower.json 文件中手动注入并且它正在工作。

我有一个类似的问题 - 在我的例子中,我为 webpack 添加了 createjs-module npm 包(我在 Laravel wabpack 组合中使用它)。范围似乎有问题,所以我必须确保 createjs 是全局的。所以你可以尝试做以下事情:

  1. 安装 npm 模块(在控制台中)

    npm install createjs-module --save
    
  2. 初始化 createjs(在你的 js 文件中)

    this.createjs = {};
    
  3. 使 createjs 全局化(在你的 js 文件中)

    window.createjs = this.createjs;
    
  4. 导入模块(在你的 js 文件中)

    require('createjs-module');
    

现在您可以像往常一样使用它了:)

参考:CreateJS GitHub Issues