Actionscript 3 在浏览器中打开时防止SWF拉伸
在浏览器中打开SWF时,它通常会拉伸以适应整个屏幕。我想阻止这种事情发生。也就是说,当SWF打开时,它将以适当的大小显示在浏览器中,无论是在左上角还是在中间 我知道这可以在HTML页面中完成,而且当使用独立播放器时,它将以适当的大小打开。但是,我希望将其单独部署为SWF,用户很可能会在浏览器中打开它Actionscript 3 在浏览器中打开时防止SWF拉伸,actionscript-3,flash,browser,haxe,stretch,Actionscript 3,Flash,Browser,Haxe,Stretch,在浏览器中打开SWF时,它通常会拉伸以适应整个屏幕。我想阻止这种事情发生。也就是说,当SWF打开时,它将以适当的大小显示在浏览器中,无论是在左上角还是在中间 我知道这可以在HTML页面中完成,而且当使用独立播放器时,它将以适当的大小打开。但是,我希望将其单独部署为SWF,用户很可能会在浏览器中打开它 那么,是的,有什么方法可以防止这种行为吗?我正在使用Haxe,但是AS3代码也会很有帮助。我已尝试将stage.scaleMode设置为StageScaleMode。没有缩放,但没有帮助。使用对齐和
那么,是的,有什么方法可以防止这种行为吗?我正在使用Haxe,但是AS3代码也会很有帮助。我已尝试将
stage.scaleMode
设置为StageScaleMode。没有缩放,但没有帮助。使用对齐和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>
var flashvars={
};
变量参数={
菜单:“假”,
音阶:“noScale”,
allowFullscreen:“真”,
allowScriptAccess:“始终”,
bgcolor:“”,
wmode:“直接”//可能导致FP设置和网络摄像头出现问题
};
变量属性={
id:“布局经理”
};
swfobject.embeddeswf(
“layoutmanager.swf”,
“altContent”、“100%”、“100%”、“10.0.0”,
“expressInstall.swf”,
flashvars、参数、属性);
html,正文{高度:100%;溢出:隐藏;}
正文{页边距:0;}
否则,如果不查看您的代码,就很难预测您有什么可以阻止扩展,或者您只是误解了它实际上使用的是完整的浏览器大小,但SWF并没有被拉伸,而是填满了空间。所以很明显,这是我使用的引擎HaxePunk的原因。我通过将其放入主类(扩展引擎)来修复它:
但在大多数其他情况下,卢卡斯的回答应该足够了。奇怪的是,stage.scaleMode必须做到这一点。你会在你的主swf或类似的东西中加载其他swf吗?@Binou:不会。真奇怪。这可能是因为我使用的是Haxe和/或HaxePunk引擎,但据我所知,我正在进入基本阶段。您是在初始化引擎之前还是之后设置它?也许引擎之后会做些什么?试试这个解决方案,因为HaxePunk有自己的管理displayObjects的方法,我想你必须在HaxePunk论坛上提问,这不是as3问题谢谢!尽管这对我的具体问题没有帮助,但它确实适用于大多数情况。
HXP.screen.scaleX = HXP.screen.scaleY = 1;