我正在开发一款Flash游戏,它可以在大多数浏览器和机器上呈现。但是,当我在Microsoft Surface Pro平板电脑上使用Firefox运行游戏时,SWF似乎被缩小。我可以右键点击游戏并点击“全部显示”,它会恢复正常。
但是,我的问题是如何阻止Firefox(和/或我的电脑)这样做?理想的解决方案是代码可以自动为我的用户解决问题,因为我觉得这个问题可能会出现我尚未遇到的其他浏览器/机器组合。
我的程序做的第一件事是调用它:
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
有没有办法告诉Flash Player应该从哪个缩放级别开始?或者也许有办法检测当前的缩放级别是什么,以便我们可以优雅地响应它?
另一种选择是检测浏览器的缩放级别,但是that doesn't seem very feasible,即使是这样,当发生这种情况时,Firefox实际上设置为100%缩放,因此这不会非常有用。
答案 0 :(得分:1)
显然,当Flash Player的缩放发生变化时, 也会改变stage.stageWidth
和stage.stageHeight
。因此,您可以通过将这些值与您想要的值进行比较来检测是否正在进行缩放。
因此,快速解决方法是在您自己的文档类中执行反缩放:
scaleX = scaleY = stage.stageWidth / STAGE_WIDTH;
其中STAGE_WIDTH
是一个存储预期舞台宽度的常量。我看不出这种方法的真正副作用,但您必须确保所有代码都引用STAGE_WIDTH
而不是stage.stageWidth
。
一个明显的结果是位图图像看起来更像素化,但即使你点击Show All
,它们也会出现像素化。