2013-12-07 53 views
1

我想用一个SpriteSheet的图像文件制作动画,当我运行代码时,出现标题中显示的错误。TypeError:createjs.Sprite不是构造函数

我的代码如下所示:

Game.Hero = function (myX, myY) { 
'use strict'; 
var data = new createjs.SpriteSheet({ 
    "images":[Game.imgResSrcs["hero"]], 
    "frames" : { 
     "regX": myX, 
     "height": 60, 
     "regY": myY, 
     "width": 60 
    }, 

    animations: { 
     move: { 
      frames: 
      [0,1,2,3,4,5,4,3,2,1], 
      speed : 0.04 
     }, 
     run: { 
      frames: [1,2,3], 
      speed:0.04 
     } 
    } 
}); 
var startX = myX, 
startY = myY, 
speed = 2, 
my = new createjs.Sprite(data, "move"); 

my.moveTo = function (newX, newY, tween) { 
    var newXpx, newYpx; 
    my.posX = newX; 
    my.posY = newY; 

    Game.stage.update(); 
}; 

我猜它有事情做这一行:我=新createjs.Sprite(数据,“移动”);

我在这里忘记了什么,或者可能会产生错误?

回答

0

您正在使用:

my = new createjs.Sprite(data, "move"); 

和错误是: 类型错误:createjs.Sprite是不是构造

所以,似乎你必须改变该行:

my = createjs.Sprite(data, "move"); 

但这很可能不是正确的,因为所有示例都使用new createjs.Sprite()

可能的原因可能是您没有在精简文件中包含精灵。

+1

我其实只是解决了它,现在,我是用过时的createjs框架。我会将你的答案标记为解决方案..谢谢你的意见。 – SmalliSax

0

尽量做到以下几点:1。 通过链接到CreateJS CDN head标签内包含在项目中的CreateJS库:

<script src="https://code.createjs.com/createjs-2015.11.26.min.js"></script> 
  • 创建页面内容后新CreateJS实例(包括CreateJS库)实际上被加载:

    function init() { 
        my = new createjs.Sprite(data, "move"); 
        // your code here 
    }; 
    
    // load the create js function when page loaded 
    if (document.readyState === "complete") { 
        init(); 
    } 
    else { 
        window.onload = function() { 
         init(); 
        }; 
    };