CreateJS不绘制

时间:2016-10-11 05:46:55

标签: jquery html5 canvas createjs

我正在使用createJS来绘制我的HTML5画布。一切似乎都有效,但形状并未绘制。下面是代码:

$(document).ready(function(){

  var canvas, stage, line;
  canvas = document.getElementById('weigh');
  stage = new createjs.Stage(canvas);

  function drawLine(){
    line = new createjs.Shape();
    line.graphics.moveTo(5, 10).setStrokeStyle(1).beginStroke('#ff0000').lineTo(300, 10);
    stage.addChild(line);
  }

  drawLine();

  createjs.Ticker.on('tick', ticking);
  createjs.Ticker.setFPS(60);

  function ticking(event){
    line.rotation += 5;
    console.log('ticking');
  }

});

这是html:

<!DOCTYPE html>
<html>
<head>
  <title>Canvas</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
  <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jcanvas/16.7.3/jcanvas.min.js"></script>
  <script type="text/javascript" src="https://code.createjs.com/createjs-2015.11.26.min.js"></script>
  <link rel="stylesheet" href="weigh.css" type="text/css">
  <script type="text/javascript" src="test.js"></script>
</head>
<body>
    <div id="canvas">
        <canvas id="weigh" width="382" height="382">alternate content</canvas>
    </div>
</body>
</html>

一切都按预期显示。控制台日志按预期记录。唯一缺少的是我画的线,我找不到原因。任何人都可以指出错误吗?

1 个答案:

答案 0 :(得分:0)

看起来你没有更新你的舞台。使用ticking方法添加更新通话:

function ticking(event){
  line.rotation += 5;
  stage.update(event);
  console.log('ticking');
}

阶段更新会重新绘制舞台内容。它不会自动发生,并为您提供控制何时重新绘制内容的机会,因为它可能是一个昂贵的调用。

干杯。