2013-10-22 54 views
0

我正在使用easeljs和spritesheet創建一個我想要使用動畫的遊戲。我使用下面的代碼來做到這一點,但動畫似乎沒有出現在我的畫布上。這很奇怪,因爲也沒有錯誤。我究竟做錯了什麼?EaselJS spritesheet動畫在畫布上不可見,但沒有錯誤

我的代碼:

stage = new createjs.Stage(canvas); 

    sprite = new createjs.SpriteSheet({ 
    "images": ["./images/vos.png"], 
    "frames": [[0, 0, 32, 32, 0, 0, 0], 
       [32, 0, 32, 32, 0, 0, 0], 
       [64, 0, 32, 32, 0, 0, 0], 
       [96, 0, 32, 32, 0, 0, 0]], 
    "animations": {"all": {"frames": [0, 1, 2, 3, 2, 1, 0]} 

      } 
    }); 

    vos = new createjs.BitmapAnimation(sprite); 

    vos.x = 32 + (Math.random() * (canvas.width - 64)); 
    vos.y = 32 + (Math.random() * (canvas.height - 64));  

    speed=8; 

    createjs.Ticker.addListener(window); 
    createjs.Ticker.setFPS(24); 

    stage.addChild(vos); 

    vos.gotoAndPlay('all'); 

回答

2

您使用的是過時的addListener方法,並告訴它尋找一個刻度方法上的窗口:

createjs.Ticker.addListener(window); 

你應該使用這樣的:

createjs.Ticker.addEventListener("tick", function() { 
    stage.update(); 
}); 

If it does not work, you should take a look here.

+1

只更新舞臺的刻度方法的更好方法是將舞臺添加爲監聽器。 Stage有一個'handleEvent'方法,它在收到tick事件時自動更新舞臺。 – Lanny