我使用最新版本的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上测试它,但在2000ms之后我再也看不到任何东西。 在此之后我尝试了一个监听器addEventListener(Event.ADDED_TO_STAGE,init);在构建UI等操作结束时调用上面的resize。 无法理解为什么调整包含我的应用内容的动画片段会使其从iPhone而不是从桌面消失。 希望在一个解决方案 提前致谢
答案 0 :(得分:0)
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;
答案 1 :(得分:0)
由于各种原因,您的调整大小功能可能会被多次调用。
main.width = Math.floor(main.width / divisor);
main.height = Math.floor(main.height / divisor);
将不断缩小主剪辑。使用常数或数字进行大小计算可能更好。不过,我通常会使用缩放功能。
main.scaleX = main.scaleY = percentStageScaled;