gpt4 book ai didi

javascript - 大多数 Flash 游戏无法在浏览器窗口中正确调整大小。我怎样才能轻松地让我的游戏做到这一点?

转载 作者:行者123 更新时间:2023-11-29 10:53:16 25 4
gpt4 key购买 nike

大多数基于 Flash 的浏览器游戏在用户调整浏览器窗口大小时(即 ctrl+鼠标滚轮)似乎无法正确调整大小。

大小调整错误的示例:Boxhead The Zombie Wars .请暂时不要玩,以免忘记我的问题。

有些(出乎意料的是很少)实际上可以正确地调整大小。示例(至少在 Chrome 中):D.N.8

是否有简单或标准的技术来完成适当的大小调整?你是怎么做到的?

最佳答案

这是可能的,对于初学者来说,您需要确保当玩家视口(viewport)更改时舞台不会自动缩放,并选择随着视口(viewport)增长您的舞台将“固定”的对齐方式:

stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.NO_SCALE;

完成后,您必须监听舞台的 RESIZE 事件,以便在调整播放器窗口/视口(viewport)大小时,您可以检查新大小并相应地重新布局您的 UI:

var resizeTimeout:uint;

stage.addEventListener(Event.RESIZE, onResize);
function onResize(e:Event=null):void
{
// Try setting a delay to workaround a weird bug when leaving fullscreen mode where the
// dimensions aren't updated properly, even though a resize event is triggered..?
if (resizeTimeout)
clearTimeout(resizeTimeout);

resizeTimeout = setTimeout(
function ()
{
trace("resizing: " + stage.stageWidth+"x"+stage.stageHeight);
// Re-layout from here
},
250);
}

如您所见,我在这里解决了一个错误,在您的情况下这可能不是必需的。如果不关闭缩放模式,播放器将自动调整舞台大小以适应视口(viewport),让您的应用程序不会注意到这些变化。当宽度/高度比发生变化时,这可能会导致问题。

无论如何,我希望我大部分都做对了,自从我不得不处理这个问题以来已经有一段时间了,我只是碰巧从一个旧项目中遗留了这段代码。

关于javascript - 大多数 Flash 游戏无法在浏览器窗口中正确调整大小。我怎样才能轻松地让我的游戏做到这一点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5767883/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com