我创建了一个使用最新版本的 AIR (16.0.0.272) 的应用程序,我正在尝试将内容缩放以适应 iPhone 的任何分辨率从 4 到 6+在桌面调试中,我看到所有完美缩放的阶段维度都更改了阶段维度以测试我的解决方案。在我的iPhone 5上尝试时,我看不到缩放的内容。如果我评论调整大小功能,一切都很好(我看到了所有内容,没有明显缩放)。这就是我的解决方案
private function resize(e:Event=null):void{
w=stageW();
h=stageH();
var initW:Number=640;
var initH:Number=960;
//bg.img.width=w;
trace(w+"/"+h);
main.y=62;
//main.x=w*.5-320;
bg.width=w;
bg.height=h;
menu.bg.width=w;
menu.bg.height=h;
var divisor:Number = 640/w;
main.width = Math.floor(main.width / divisor);
main.height = Math.floor(main.height / divisor);
}我试图暂时调整大小调用以在 iPhone 上对其进行测试,但在 2000 毫秒后我什么也看不到。在此之后,我尝试使用侦听器addEventListener(Event.ADDED_TO_STAGE,init);在构建 UI 等操作结束时调用上面的调整大小。无法理解为什么调整包含我的应用程序内容的影片剪辑的大小会使其从 iPhone 上消失,而不是从桌面上消失。希望有一个解决方案提前致谢
Capabilities.screenResolutionX 和 Capabilities.screenResolutionY 是您应该用于应用程序屏幕宽度和高度的内容。
注意:X 和 Y 不会随着旋转而变化 - 当屏幕旋转时,它们将保持不变,因此获取屏幕尺寸的代码将如下所示:
if (bStagePortrait) {
iScreenWidth = Capabilities.screenResolutionX;
iScreenHeight = Capabilities.screenResolutionY;
} else {
iScreenWidth = Capabilities.screenResolutionY;
iScreenHeight = Capabilities.screenResolutionX;
}
此外,请使用此代码阻止应用调整大小或移动:
stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.NO_SCALE;
由于各种原因,您的调整大小函数可能会被多次调用。
main.width = Math.floor(main.width / divisor);
main.height = Math.floor(main.height / divisor);
将不断使主剪辑变小。最好使用常量或数字进行大小计算。不过,我通常会做一些缩放的事情。
main.scaleX = main.scaleY = percentStageScaled;