2012-11-06 23 views
0

我正在跟进一个针对windows 8的游戏开发教程http://www.sitepoint.com/creating-a-simple-windows-8-game-with-javascript-game-basics-createjseaseljs/。 本教程可能需要更新,因为在某些时候,我必须在使用PreloadJS之前添加createJS。使用preload.js和create.js加载图像?

例如:

stage = new createjs.Stage(canvas); 
preload = new createjs.PreloadJS(); 

否则调试抛出错误。

但是,当bgImage被初始化时程序中断。任何暗示的代码,我可以使用?

bgImage = preload.getResult("screenImage").Result; 
bgBitmap = new Bitmap(bgImage); 
bgBitmap.scale_X = SCALE_X; 
bgImage.scale_Y = SCALE_Y; 
stage.addChild(bgBitmap); 
stage.update(); 

回答

3

请确保您使用的语法正确。

var bgImage = preload.getResult("screenImage").result; 
var bgBitmap = new createjs.Bitmap(bgImage); 
stage.addChild(bgBitmap); 

另外你得到的错误是什么? 这是一个应该帮助的快速示例。

function init() { 
     canvas = document.getElementById("testCanvas"); 

     //check to see if we are running in a browser with touch support 
     stage = new createjs.Stage(canvas); 
     createjs.Ticker.setFPS(24); 
     createjs.Ticker.addListener(stage); 

     images = images || {}; 
     var manifest = [ 
      {src:"image.jpg", id:"image"} 
     ] 

     loader = new createjs.PreloadJS(false); 
     loader.onFileLoad = handleFileLoad; 
     loader.onComplete = handleComplete; 
     loader.loadManifest(manifest); 
    } 

    function handleFileLoad(o) { 
    //You could store all your images in object to call them easily. 
    if (o.type == "image") { 
      images[o.id] = o.result; 
     } 
    } 

    function handleComplete(event) { 
     var bg = new createjs.Bitmap(loader.getResult("image").result); 
     //OR samething 
     //var bg = new createjs.Bitmap(images['image']); 
     stage.addChild(bg); 
    } 

    function tick() { 
     stage.update(); 
    } 

希望这会有所帮助。

+2

只需注意PreloadJS 0.3.0(2013年2月)有一个略微不同的API来帮助支持新的事件模型。具体来说,getResult方法和fileload事件负载已更改。有关更多详情,请参阅文档。 – Lanny