【发布时间】:2019-01-14 09:08:24
【问题描述】:
我正在使用以下调整大小功能缩放我的画布:
function resize() {
var w, h;
var size = [1920, 1080];
ratio = size[0] / size[1];
if (window.innerWidth / window.innerHeight >= ratio) {
w = window.innerHeight * ratio;
h = window.innerHeight;
} else {
w = window.innerWidth;
h = window.innerWidth / ratio;
}
$('canvas').width(w);
$('canvas').height(h);
var scale = w/1920;
stage.scaleX = stage.scaleY = scale;
}
window.onresize = resize;
使用 HTML 和 CSS
<canvas width="1920" height="1080"></canvas>
<style>
canvas {
width: 1920px;
height: 1080px;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%,-50%);
}
</style>
这非常适合舞台本身,但内容缩放和位置似乎发生了变化并且不起作用。
所以如果我以后有:
some_container.y = 1000;
它在一个大画布上呈现在中间,但是当我调整大小时,它会靠近顶部,并且至少看起来也不成比例。
所以我想我必须以某种方式对位置应用相同的比率,但我似乎无法正确计算公式。任何帮助将不胜感激。
此示例 (https://codepen.io/funktion/pen/JwwwBx) 似乎可以正确缩放和移动。
经过反复试验,我发现问题出在股票行情上……
createjs.Ticker.addEventListener("tick", tick);
function tick(event) {
if (!event.paused) {
stage.update();
}
}
但是...我确实需要动画的代码。任何想法将不胜感激。
【问题讨论】:
标签: canvas responsive easeljs