我想知道为什么这不起作用,我所要做的就是得到一个图像,并把它作为我画布的一个阶段的孩子

I want to know why this is not working, all im trying to do is get an image and use it as a stage child for my canvas

本文关键字:一个 孩子 图像 想知道 为什么 不起作用      更新时间:2023-09-26

我必须添加一些东西来描述代码,不是吗很明显这是HTML代码,不知道为什么不能运行。这之后的代码是javascript。如果我的代码非常糟糕并且没有任何意义,我所寻找的基本上是一种使用loadqueue加载图像并将其设置为游戏背景的方法。

<!DOCTYPE html>
<html>
    <head>
        <title>My Game</title>
        <link href="assets/MyGame.css" rel="stylesheet" type="text/css"/>
        <script src="https://code.createjs.com/preloadjs-0.6.1.min.js"></script>
        <script src="https://code.createjs.com/tweenjs-0.6.1.min.js"></script>
        <script language="javascript" type="text/javascript" 
        src="https://code.createjs.com/easeljs-0.8.1.min.js"></script>
        <script language="javascript" type="text/javascript" src="MyGame.js" 
        ></script>
    </head>
    <body>
        <canvas id="demoCanvas" width="1000" height="700"></canvas>
    </body>
</html>
var stage;

window.onload = function()
{
    var queue = new createjs.LoadQueue(true);
    queue.on("fileload", handleFileLoad, this);
    queue.loadFile({id:"image", src:"assets/space.jpg"});
    queue.load();
    stage = new createjs.Stage("demoCanvas");
}
function handleFileLoad(event) {
    // A reference to the item that was passed in to the LoadQueue
     var item = event.item; 
     var type = item.type;
     // Add any images to the page body.
     if (type == createjs.LoadQueue.IMAGE) {
         stage.addChild(event.result)
         stage.update;
     }
 }

我认为stage.update;应该是stage.update();,因为它是一个方法而不是一个属性

我可以发现两个紧迫的问题:

  1. 您正在尝试将加载的图像直接添加到舞台。需要先用位图包装:stage.addChild( new createjs.Bitmap( event.result ));

  2. 您没有调用stage.update() -您忘记了括号。