Ios iPhone flash中的不同屏幕尺寸?(获得黑条)
我对整个编码世界都是新手,ActionScript3是我第一次真正的体验,如果我不能马上理解你的答案,那么很抱歉 我已经使用AdobeFlashCC-in-AIR为iOS构建了一个iPhone应用程序。所有代码要么在时间轴中,要么作为文件单独存在(因此不使用documents类) 游戏的核心概念是随机生成的物体从屏幕顶部掉落,用户必须轻触它们,让它们在触到底部之前消失 我的问题是我的文档大小是Ios iPhone flash中的不同屏幕尺寸?(获得黑条),ios,iphone,actionscript-3,flash,Ios,Iphone,Actionscript 3,Flash,我对整个编码世界都是新手,ActionScript3是我第一次真正的体验,如果我不能马上理解你的答案,那么很抱歉 我已经使用AdobeFlashCC-in-AIR为iOS构建了一个iPhone应用程序。所有代码要么在时间轴中,要么作为文件单独存在(因此不使用documents类) 游戏的核心概念是随机生成的物体从屏幕顶部掉落,用户必须轻触它们,让它们在触到底部之前消失 我的问题是我的文档大小是640x960。我认为这适合iPhone4(还没有测试过),但当我在iPhone5S上测试它时,我会看到
640x960
。我认为这适合iPhone4(还没有测试过),但当我在iPhone5S上测试它时,我会看到顶部和底部的返回条。显然,他们有不同的屏幕尺寸,但我希望该应用程序能够运行在许多不同尺寸的iPhone上
我花了几个小时在谷歌上搜索,但仍然不明白我该做什么。我尝试过使用stage.scaleMode
设置,但没有任何变化。我还添加了一个名为default的文件-568h@2x.png
(只是一个绿色矩形,尺寸为640 x 1136
),但这也不显示
所以本质上,我想知道如何更改我的应用程序和AS3代码,使我的应用程序能够适应所有不同大小的iPhone
任何帮助都将不胜感激 发布图像
首先,在做其他事情之前,您需要确保项目中包含了正确的启动映像
这是一张来自:
- Default~iphone.png| iphone4(非视网膜)640 x 960 Potrait
- Default@2x~iphone.png| iphone4,4s 640 x 960 Potrait
- 默认值-568h@2x~iphone.png| iphone5、5c、5s 640 x 1136 Potrait
- 默认值-375w-667h@2x~iphone.png| iphone6/7/8 750 x 1334 Potrait
- 默认值-414w-736h@3x~iphone.png| iphone6+/7+/8+1242 x 2208 Potrait
- Default-scape-414w-736h@3x~iphone.png| iphone6+/7+/8+2208 x 1242景观
- 默认景观-812h@3x~iphone.png| iphone X 2436 X 1125景观
- 默认值-812h@3x~iphone.png| iphone X 1125 X 2436人像
- 转到您的发布设置
- 转到“空中”获取iOS设置
- 转到“常规”选项卡
- 将所有这些图像添加到“包含的文件”列表(根目录)
扩展您的内容
- 选项1,填充和裁剪
stage.scaleMode = StageScaleMode.NO_BORDER
这将缩放swf,使其填充整个屏幕,同时保持纵横比。很容易计算出需要多少填充,才能使这种方法在各种iPhone的纵横比变化不大的情况下正常工作
但是,如果要允许方向更改(从纵向更改为横向),裁剪可能会过于严重
- 选项2-响应性设计
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
现在,您的阶段边界(stage.stageWidth
&stage.stageHeight
)将是设备的全宽和全高*。(某些设备的底部或顶部仍有软件工具栏)
然后,您可以通过代码定位事物
如果您想要一种简单的方法来转换您所拥有的内容(您不想使用代码来调整大小并完全对齐所有内容),只需将所有内容放在一个实例名为container
的容器MovieClip中,然后您可以按如下方式调整其大小和位置:
//scale the container as big as possible while still fitting entirely in the screen:
//figure out which dimension should match the stage (widht or height)
if(container.width - stage.stageWidth >= container.height - stage.stageHeight){
container.width = stage.stageWidth;
container.scaleY = container.scaleX;
}else {
container.height = stage.stageHeight
container.scaleX = container.scaleY;
}
//center it on the screen:
container.x = (stage.stageWidth - container.width) * 0.5;
container.y = (stage.stageHeight - container.height) * 0.5;
如果屏幕大小发生变化(例如,在桌面上最大化/恢复,或在移动设备上从纵向调整到横向),则监听调整大小事件也是一个好主意
您可以通过侦听舞台上的调整大小事件来完成此操作:
stage.addEventListener(Event.RESIZE, redrawScreen);
function redrawScreen(e:Event):void {
//resize everything as the window size has changed.
}
发布图像
首先,在做其他事情之前,您需要确保项目中包含了正确的启动映像
这是一张来自:
- Default~iphone.png| iphone4(非视网膜)640 x 960 Potrait
- Default@2x~iphone.png| iphone4,4s 640 x 960 Potrait
- 默认值-568h@2x~iphone.png| iphone5、5c、5s 640 x 1136 Potrait
- 默认值-375w-667h@2x~iphone.png| iphone6/7/8 750 x 1334 Potrait
- 默认值-414w-736h@3x~iphone.png| iphone6+/7+/8+1242 x 2208 Potrait
- Default-scape-414w-736h@3x~iphone.png| iphone6+/7+/8+2208 x 1242景观
- 默认景观-812h@3x~iphone.png| iphone X 2436 X 1125景观
- 默认值-812h@3x~iphone.png| iphone X 1125 X 2436人像
- 转到您的发布设置
- 转到“空中”获取iOS设置
- 转到“常规”选项卡
- 将所有这些图像添加到“包含的文件”列表(根目录)
扩展您的内容
- 选项1,填充和裁剪
stage.scaleMode = StageScaleMode.NO_BORDER
这将缩放swf,使其填充整个屏幕,同时保持纵横比。很漂亮