【问题标题】:Txt doesn`t appear on the stagetxt没有出现在舞台上
【发布时间】:2014-05-12 00:21:12
【问题描述】:

谁能告诉我我做错了什么。我正在尝试将文本添加到我的舞台,但舞台不显示任何文本并且没有给出错误。我做错什么了吗。我正在使用 addChild 添加 txt,所以它应该出现?为什么不显示任何东西,不是因为颜色,因为我改变了文本的颜色。

HTML:

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>game</title>

   <script type="text/javascript" src="game.js"></script>
   <script type="text/javascript" src="js/easel.js"></script>

</head>
<body onload="init();">


<canvas id=canvas width="960" height="580"></canvas>


</body>
</html>

javascript:

var canvas;
var stage;
var score;
var bitmap;
var bmpList;
var txt;
var play;



function init() {



    canvas = document.getElementById("canvas");
    stage = new Stage(canvas);
    score = 0;

    var image = new Image();
    image.src = "imgs/stone.png";
    image.onload = maakTegenstander; 

}

function maakTegenstander(event){

    var image = event.target;
    var container = new Container();
    stage.addChild(container);


    var l = 5;
    bmpList=[]; // dit is een array
    for(var i=0; i<l; i++){ 
        bitmap = new Bitmap(image); 
        container.addChild(bitmap); 
        bitmap.name="stone"+i; 
        verwijderTegenstander(bitmap);
        bitmap.regX = bitmap.image.width/2|0;
        bitmap.regY = bitmap.image.height/2|0;
        bitmap.mouseEnabled = true;
        bmpList.push(bitmap);
    }

    txt = new Text ("Score: 0", "24px Arial", "#333");
    txt.textBaseline="top";
    txt.x = 400; 
    txt.y = 20;
    stage.addChild(txt); 
    play=true;


    Ticker.addListener(window);

}



function verwijderTegenstander(stone){

    stone.y = canvas.height - 700; 
    stone.x = canvas.width* Math.random() + 30;  

    stone.speed = (Math.random()*5)+2; 


    }

function tick(){
    if(play == true){
        var l=bmpList.length;

    }
    if (play == true){
        var l = bmpList.length;
        for(var i=0; i<l; i++){
            var bmp = bmpList[i];
            if (bmp.y < 650){ 
                bmp.y += bmp.speed;
            }else{
                //gameOver();
                console.log("game over");
            }
        }
    }
    txt.text = "Punten: "+score;
    stage.update();
}

【问题讨论】:

    标签: javascript html add-in addchild


    【解决方案1】:

    这是基于您的代码的小提琴:http://jsfiddle.net/fXgeg/1/

    我改变了两件事:

    对于每个对 easeljs 模块的调用,我都添加了“createjs”。例如

    createjs.Stage
    

    我已经像这样更改了代码监听器注册:

    //Ticker.addListener(window); <- this is wrong
    createjs.Ticker.addEventListener("tick", tick);
    

    这样您就可以提供事件类型 - "tick" 以及每次发生此事件时应调用的函数 - tick()

    【讨论】:

    • 嘿,谢谢!这是 ik 现在得到的错误:Uncaught ReferenceError: createjs is not defined
    • 您使用的是最新的easelJS 文件吗?你是从createjs网站下载的吗?
    • 你做的和我一模一样,为什么我会出错,你在工作。
    • 我做了一些改变,你能看看这个吗?它是一样的,但现在它包含一个新的 spritesheet jsfiddle.net/hD2yj 现在出现这些错误:Uncaught TypeError: Object function (){throw"SpriteSheetUtils cannot被实例化”} 没有方法 'flip' spell.js:115 Uncaught TypeError: Object # has no method 'isVisible' easeljs-0.7.1.min.js:13 154 Uncaught TypeError: Object # has没有方法'isVisible'
    • 是的,SpriteSheetUtils 不存在方法“翻转”。你可以在这里查看:createjs.com/Docs/EaselJS/classes/SpriteSheetUtils.html
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-25
    • 2013-06-05
    • 2013-02-02
    • 2022-11-10
    • 1970-01-01
    • 2014-06-23
    • 2012-11-22
    相关资源
    最近更新 更多