我正在使用FlashPunk制作Flash游戏。当我按下Ctrl + F时,Flash会全屏显示,但游戏保持原始大小,与左上角对齐。
如何向FlashPunk指定我希望将游戏缩放到屏幕大小? (保持纵横比,偏离正轨)
由于
答案 0 :(得分:1)
你可以control scaling in OBJECT attributes when you embed the Flash into HTML。使用scale=default
缩放维护宽高比。在播放器中运行Flash时,使用菜单项View-> Show All,其功能与HTML中的OBJECT中的scale=default
相同。
答案 1 :(得分:0)
缩放Flash动画会显着降低性能。我劝你不要出于任何原因这样做。我不确定闪光朋克是什么,但尝试使用它:
stage.scaleMode = StageScaleMode.SHOW_ALL;
答案 2 :(得分:0)
您可以挂钩调整大小事件并在代码中缩放
//put this in your initialization method
stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.addEventListener(Event.RESIZE, onResize);
stage.dispatchEvent(new Event(Event.RESIZE));
public function onResize(event:Event=null):void
{
width = stage.stageWidth;
height = stage.stageHeight;
if (scaleX < scaleY)
scaleY = scaleX;
else
scaleX = scaleY;
}
答案 3 :(得分:0)
执行此操作的最佳方法是覆盖主类中的setStageProperties公共函数(在FlashPunk中,您的主类应该扩展Engine类)
override public function setStageProperties():void
{
super.setStageProperties();
stage.scaleMode = StageScaleMode.SHOW_ALL;
}
答案 4 :(得分:0)
看看flashpunk中的FP类。特别是FP.screen.scale
,它允许您按指定因素调整整个游戏的大小。例如,下面的代码将使游戏屏幕的大小翻倍:
FP.screen.scale = 2;
如果您需要担心纵横比,可以分别使用以下内容执行X和Y:
FP.screen.scaleY = 2;
FP.screen.scaleX = 3;
进入全屏后,您可以使用以下代码获取正确的宽高比以放大屏幕:
var scaleFactorX = stage.stageWidth / FP.screen.width;
var scaleFactorY = stage.stageHeight / FP.screen.height;
FP.screen.scaleX = scaleFactorX;
FP.screen.scaleY = scaleFactorY;