我目前正在通过Adobe Air将Flash游戏移植到OUYA(Android设备(。
大部分工作已经完成;它被打包并在Android设备上运行。
然而!它卡在屏幕上的一个小角落里,如图所示。
我想要的是让游戏缩放到屏幕的全尺寸,同时保持纵横比。我见过其他Flash to Air到Android游戏这样做,所以我知道这是可能的,我只是不知道怎么做。
有人有什么提示吗?谢谢!
Read up on stage.scaleMode:
http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/Stage.html#scaleMode
这应该正是您所需要的。
保留纵横比的另一种选择是,如果您有一个包含所有内容的父容器,请对其进行缩放以适合您自己:
var widthRatio:Number = stage.stageWidth / BASE_WIDTH;
var heightRatio:Number = stage.stageHeight / BASE_HEIGHT;
if (widthRatio < heightRatio)
{
container.scaleX = container.scaleY = widthRatio;
}
else
{
container.scaleX = container.scaleY = heightRatio;
}
此时,您可以将容器居中到舞台:
container.x = (stage.stageWidth - container.width) /2;
container.y = (stage.stageHeight - container.height) / 2;
或者用它做其他事情。
我只需要这两行代码即可使其工作:
stage.scaleMode = StageScaleMode.SHOW_ALL;
stage.align = "";