Javascript AS3:浏览器会自动告诉Flash Player缩小
我正在开发一款Flash游戏,它在大多数浏览器和机器上都能很好地渲染。然而,当我在微软Surface Pro平板电脑上运行Firefox游戏时,SWF似乎被缩小了。我可以右键点击游戏,然后点击“全部显示”,游戏就会恢复正常 然而,我的问题是如何阻止Firefox(和/或我的电脑)这么做?理想的解决方案是使用代码为我的用户自动修复问题,因为我觉得这个问题可能会出现在我还没有遇到的其他浏览器/机器组合中 我的程序所做的第一件事就是将其称为:Javascript AS3:浏览器会自动告诉Flash Player缩小,javascript,actionscript-3,flash,firefox,windows-8,Javascript,Actionscript 3,Flash,Firefox,Windows 8,我正在开发一款Flash游戏,它在大多数浏览器和机器上都能很好地渲染。然而,当我在微软Surface Pro平板电脑上运行Firefox游戏时,SWF似乎被缩小了。我可以右键点击游戏,然后点击“全部显示”,游戏就会恢复正常 然而,我的问题是如何阻止Firefox(和/或我的电脑)这么做?理想的解决方案是使用代码为我的用户自动修复问题,因为我觉得这个问题可能会出现在我还没有遇到的其他浏览器/机器组合中 我的程序所做的第一件事就是将其称为: stage.scaleMode = StageScaleM
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
有没有办法告诉Flash Player应该从哪个缩放级别开始?或者也许有一种方法可以检测当前的缩放级别,以便我们能够优雅地响应它
另一种选择是检测浏览器的缩放级别,但是,即使是这样,Firefox在这种情况下实际上也会设置为100%缩放,所以这不是很有用。显然,当Flash Player的缩放被改变时,它也会改变
stage.stageWidth
和stage.stagewhight
。因此,通过将这些值与预期值进行比较,可以检测到正在发生缩放
因此,一个快速解决方案是在您自己的文档类中执行计数器缩放:
scaleX = scaleY = stage.stageWidth / STAGE_WIDTH;
其中,STAGE\u WIDTH
是一个常数,用于存储预期的STAGE WIDTH。我看不出这种方法有什么副作用,但您必须确保所有代码都引用了STAGE\u WIDTH
,而不是STAGE.stageWidth
一个值得注意的结果是位图图像看起来更像素化,但即使在您点击“显示所有”时,它们也会显示像素化。您确定缩小的不仅仅是浏览器,因为可能SWF不适合吗?我刚刚检查了,而且浏览器肯定设置为100%缩放。因为我已经将
scaleMode
设置为NO\u SCALE
,通过浏览器放大和缩小会调整舞台的大小,但实际上不会缩放SWF。取而代之的是,当“视口”改变大小时,它只是保持所有内容的大小不变。我所说的“视口”是指,浏览器中有一个框,在其中渲染SWF,缩放所做的只是更改该框的大小,而不缩放其中的内容。