Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在浏览器上调整背景图像的大小';s调整大小_Javascript_Createjs_Easeljs - Fatal编程技术网

Javascript 在浏览器上调整背景图像的大小';s调整大小

Javascript 在浏览器上调整背景图像的大小';s调整大小,javascript,createjs,easeljs,Javascript,Createjs,Easeljs,我正在使用EaselJs构建我的游戏,我想捕捉浏览器的onresize事件,以便调整舞台和它包含的所有图像的大小 我尝试过以下代码: window.addEventListener('resize', resize, false); init() { createjs.Ticker.addEventListener('tick', handleTick); resize(); } function handleTick(event) { stage.update(); }

我正在使用EaselJs构建我的游戏,我想捕捉浏览器的onresize事件,以便调整舞台和它包含的所有图像的大小

我尝试过以下代码:

window.addEventListener('resize', resize, false);

init() {
   createjs.Ticker.addEventListener('tick', handleTick);
   resize();
}

function handleTick(event) {
  stage.update();
}

function resize() {
  stage.canvas.width = window.innerWidth;
  stage.canvas.height = window.innerHeight;
}
但它没有真正起作用…有什么想法吗


谢谢。

据我所知,如果使用相对单位(例如100%)设置画布宽度,画布应自动保持其比例。显然,子元素也应该是相对的,以实现流畅的布局

如果希望使用javascript获得相同的结果,则应使用正确的事件侦听器

window.onresize

据我所知,如果使用相对单位(例如100%)设置画布宽度,画布应自动保持其比率。显然,子元素也应该是相对的,以实现流畅的布局

如果希望使用javascript获得相同的结果,则应使用正确的事件侦听器

window.onresize

如果使用JavaScript调整画布内容的大小,则会向画布元素添加更多像素。内容将不会调整大小以适应

canvas.width = window.innerWidth;
如果您使用CSS调整大小,那么您正在变换元素,使其具有相同的像素数,但会被拉伸

canvas.style.width = window.innerWith;
如果要缩放内容以适应更多像素,则需要缩放舞台,或者更好地将内容放在容器中并缩放

这是我为回答一个类似问题而制作的一个快速示例,应该可以帮助您开始


如果使用JavaScript调整画布内容的大小,则会向画布元素添加更多像素。内容将不会调整大小以适应

canvas.width = window.innerWidth;
如果您使用CSS调整大小,那么您正在变换元素,使其具有相同的像素数,但会被拉伸

canvas.style.width = window.innerWith;
如果要缩放内容以适应更多像素,则需要缩放舞台,或者更好地将内容放在容器中并缩放

这是我为回答一个类似问题而制作的一个快速示例,应该可以帮助您开始


我捕获“onresize”浏览器事件没有问题,当我捕获该事件并为舞台设置新的宽度和高度时-实际上什么都没有发生…尝试检查开发人员工具控制台,是否看到任何错误?stage.canvas是否返回未定义的?否,控制台中没有错误。如果我没弄错的话,resize函数会给画布一个新的宽度和高度,并更新stage,它会自动调整stage上所有元素的大小,对吗?顺便问一下,为什么我们需要tick事件?我们可以将stage.update()放在resize方法中,不是吗?我捕获“onresize”浏览器事件没有问题,当我捕获该事件并为stage设置新的宽度和高度时-实际上什么都没有发生…尝试检查开发人员工具控制台,您看到任何错误吗?stage.canvas是否返回未定义的?否,控制台中没有错误。如果我没弄错的话,resize函数会给画布一个新的宽度和高度,并更新stage,它会自动调整stage上所有元素的大小,对吗?顺便问一下,为什么我们需要tick事件?我们可以把stage.update()放在resize方法中,不是吗?你的例子和解释真的帮助了我!!非常感谢:-)你的例子和解释真的帮助了我!!非常感谢:-)