Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/44.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios iPhone flash中的不同屏幕尺寸?(获得黑条)_Ios_Iphone_Actionscript 3_Flash - Fatal编程技术网

Ios iPhone flash中的不同屏幕尺寸?(获得黑条)

Ios iPhone flash中的不同屏幕尺寸?(获得黑条),ios,iphone,actionscript-3,flash,Ios,Iphone,Actionscript 3,Flash,我对整个编码世界都是新手,ActionScript3是我第一次真正的体验,如果我不能马上理解你的答案,那么很抱歉 我已经使用AdobeFlashCC-in-AIR为iOS构建了一个iPhone应用程序。所有代码要么在时间轴中,要么作为文件单独存在(因此不使用documents类) 游戏的核心概念是随机生成的物体从屏幕顶部掉落,用户必须轻触它们,让它们在触到底部之前消失 我的问题是我的文档大小是640x960。我认为这适合iPhone4(还没有测试过),但当我在iPhone5S上测试它时,我会看到

我对整个编码世界都是新手,ActionScript3是我第一次真正的体验,如果我不能马上理解你的答案,那么很抱歉

我已经使用AdobeFlashCC-in-AIR为iOS构建了一个iPhone应用程序。所有代码要么在时间轴中,要么作为文件单独存在(因此不使用documents类)

游戏的核心概念是随机生成的物体从屏幕顶部掉落,用户必须轻触它们,让它们在触到底部之前消失

我的问题是我的文档大小是
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人像
一旦制作了这些图像(并按照图中所示命名),请通过执行以下操作将它们包括在项目中(它们必须位于应用程序的根目录中):

在FlashPro中

  • 转到您的发布设置
  • 转到“空中”获取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人像
一旦制作了这些图像(并按照图中所示命名),请通过执行以下操作将它们包括在项目中(它们必须位于应用程序的根目录中):

在FlashPro中

  • 转到您的发布设置
  • 转到“空中”获取iOS设置
  • 转到“常规”选项卡
  • 将所有这些图像添加到“包含的文件”列表(根目录)

扩展您的内容
  • 选项1,填充和裁剪
如果您不介意稍微裁剪一下内容,您可以在应用程序启动时执行此操作:

stage.scaleMode = StageScaleMode.NO_BORDER
这将缩放swf,使其填充整个屏幕,同时保持纵横比。很漂亮