Txt没有出现在舞台上

时间:2014-04-01 09:50:36

标签: javascript html5 add-in addchild

有人可以告诉我我做错了什么。我试图在我的舞台上添加文字但是舞台没有显示任何文字,并且没有给出错误。我做错什么了吗。我用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();
}

1 个答案:

答案 0 :(得分:0)

根据您的代码,这是一个小提琴:http://jsfiddle.net/fXgeg/1/

我改变了两件事:

对于每次调用easeljs模块,我都添加了'createjs'。 e.g。

createjs.Stage

我已经改变了这样的股票代码监听器注册:

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

通过这种方式,您可以提供事件类型 - “tick”以及每次发生此事件时应调用的函数 - tick()