大多数Flash游戏都无法在浏览器窗口中正确调整大小.我该如何让自己的游戏做到这一点?
Most Flash games don't resize properly in a browser window. How can I easily make my game do this?
大多数基于flash的浏览器游戏在用户调整浏览器窗口大小(如ctrl+鼠标滚轮)时似乎无法正确调整大小。
调整大小的糟糕例子:《Boxhead The Zombie Wars》。请暂时不要玩,以免你忘记我的问题。
一些(令人惊讶的是很少)确实正确地调整了大小。示例(至少在Chrome中):D.N.8
是否有一个简单或标准的技术来完成适当的调整?你是怎么做到的?
这是可能的,对于初学者来说,你需要确保当玩家视口改变时舞台不会自动缩放,并选择一个随着视口增长而"坚持"的舞台对齐:
stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.NO_SCALE;
一旦完成,你必须听取舞台的RESIZE事件,这样当播放器窗口/视口被调整大小时,你可以检查新的大小并相应地重新布局你的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);
}
正如您所看到的,我在这里解决了一个错误,这在您的情况下可能不是必要的。在没有关闭缩放模式的情况下,玩家将自动调整你的舞台大小以适应视口,使你的应用程序不受这些变化的影响。当宽度/高度比改变时,这可能会导致问题。
无论如何,我希望我得到的大部分是正确的,这是一段时间以来,我不得不处理这个,我只是碰巧有这一点代码躺在周围仍然从一个老项目
相关文章:
- 按我自己的类克隆另一个元素的内容和顺序
- 如何配置分析以将数据发送到我自己的服务器
- 如何使用jquery ajax和jsonp在您自己的域上读取json数据
- setInterval游戏循环的范围问题
- 创造自己的智能
- 如何在Win8Metro应用程序的Javascript代码中捕获自己的C#事件
- 从自己的安全系统中重新找回自己
- 麻烦将coffee脚本片段移动到rails中自己的类中
- 从我自己的脚本中包含的Javascript文件中调用一个函数
- 让我自己的过滤器不工作
- 2D Processingjs游戏中的冲突
- 消隐数组元素是否生成自己的属性
- JavaScript子对象访问自己的值
- 你知道使用javascript游戏引擎的简单方法吗
- Selenium异步脚本在自己的线程中阻塞其他脚本
- 我的游戏自己玩
- 如何使用玩家自己制作的精灵作为游戏中的精灵
- 画布游戏:我的蛇吃了自己
- 我该如何添加选项,让用户能够使用JavaScript将自己的图像添加到益智游戏中
- 大多数Flash游戏都无法在浏览器窗口中正确调整大小.我该如何让自己的游戏做到这一点?