在浏览器中打开SWF时,它通常会拉伸以适应整个屏幕。我想防止这种情况发生。也就是说,当打开SWF时,它只会在浏览器中以适当的大小出现在左上角或中间位置。
我知道这可以在HTML页面中完成,而且当使用独立播放器时,它将以适当的大小打开。但是,我希望将其作为SWF部署,并且用户可能会在浏览器中打开它。
所以是的,有什么方法可以阻止这种行为吗?我正在使用Haxe,但AS3代码也会有用。我尝试将stage.scaleMode
设置为StageScaleMode.NO_SCALE
,但这没有帮助。
答案 0 :(得分:2)
使用align和scaleMode
stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.NO_SCALE;
也可以在html包装器中设置:
<script src="js/swfobject.js"></script>
<script>
var flashvars = {
};
var params = {
menu: "false",
scale: "noScale",
allowFullscreen: "true",
allowScriptAccess: "always",
bgcolor: "",
wmode: "direct" // can cause issues with FP settings & webcam
};
var attributes = {
id:"layoutmanager"
};
swfobject.embedSWF(
"layoutmanager.swf",
"altContent", "100%", "100%", "10.0.0",
"expressInstall.swf",
flashvars, params, attributes);
</script>
<style>
html, body { height:100%; overflow:hidden; }
body { margin:0; }
</style>
否则没有查看你的代码很难预测你有什么可以防止缩放 - 或者只是你误解了它实际上是使用完整的浏览器大小但是SWF没有被拉伸但填补空间。
答案 1 :(得分:0)
显然,这与我使用的引擎HaxePunk有关。我设法通过将它放在主类(扩展Engine
)中来修复它:
HXP.screen.scaleX = HXP.screen.scaleY = 1;
在大多数其他情况下,Lukasz的答案应该足够了。