我正在使用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>
一切都按预期显示。控制台日志按预期记录。唯一缺少的是我画的线,我找不到原因。任何人都可以指出错误吗?
答案 0 :(得分:0)
看起来你没有更新你的舞台。使用ticking
方法添加更新通话:
function ticking(event){
line.rotation += 5;
stage.update(event);
console.log('ticking');
}
阶段更新会重新绘制舞台内容。它不会自动发生,并为您提供控制何时重新绘制内容的机会,因为它可能是一个昂贵的调用。
干杯。