2014-11-25 108 views
-1

我在adobe flash cs6中创建了一个iOs APP,一切正常。更改闪光灯的舞台尺寸,但保持宽高比?

但是我现在遇到的问题是应用程序的内容在像iPhone 5这样的更大的iPhone上得到了延伸!

我使用下面的代码在我的AS3代码中的第一层的第一帧:

import flash.display.Sprite; 
import flash.display.Screen; 
import flash.geom.Rectangle; 
import flash.display.StageAlign; 
import flash.display.StageScaleMode; 
import flash.system.Capabilities; 
import flash.display.MovieClip; 
import flash.display.*; 
import flash.events.*; 
import flash.geom.*; 
stage.scaleMode = StageScaleMode.NO_SCALE; 
stage.scaleMode = StageScaleMode.NO_BORDER; 
stage.align = StageAlign.TOP_LEFT; 
stage.scaleMode = StageScaleMode.EXACT_FIT; 

我使用上述所以整个APP的代码将适合每一个屏幕,它工作正常,但一切(APP的内容)得到延伸!

有什么我可以做的,以保持内容的纵横比,同时适合上述每一个屏幕上的应用程序的应用程序?

在此先感谢

编辑:

我已经去除了stage.scaleMode = StageScaleMode.EXACT_FIT;,当我在iPhone上查看的应用程序,它不会被拉伸,但一切的轻微去这导致隐藏的权利屏幕右侧APP的一小部分!

+0

你所要求的是不可能的 – Daniel 2014-11-25 19:25:52

回答

-1

没有。

有没有办法神奇地处理这一点。你必须告诉它如何安排内容。

+0

我怎么能告诉它保持内容的宽高比? – user3806613 2014-11-25 02:57:48

+0

设置stage.scaleMode没有累积效果。看看这里的选项http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/StageScaleMode.html最有可能你正在寻找'SHOW_ALL' – Daniel 2014-11-25 03:00:05

+0

你看,我确实尝试过SHOW_ALL但是正如它在上面发送的链接中所述“边框可以出现在应用程序的两侧”。我不能在应用程序边界周围! – user3806613 2014-11-25 03:02:58

0

尽管丹尼尔是正确的,但需要更详细的答案。

事实是,这比你想象的要复杂一些。 Flash不知道如何定位你的元素 - 有时你会希望你的按钮伸展,但不是那么多。或者保持高宽比,但是其中一些内容会掉下来。

这是怎么回事?这个领域的最佳实践是拥有一个固定的阶段视口(初始阶段大小)。通常这是固定的320x480。然后,你让你的应用程序扩展它(如果你运行一个更大的屏幕,你的320像素将被非常缩放,并被像素化)。

这里有棘手的部分 - 取决于设备的分辨率和dpi,你提供了特定的资产。假设你在两次你的'初始固定视口'上运行你的应用程序。然后,一切似乎都会放大两倍(640x960是320x480的两倍)。一切都以像素为单位。

但是在这里你提供的图形也是两倍大 - 640x960。这意味着如果你在基本舞台上运行它们,它们将被缩小为 - 变成320x480。但是如果你在更大的屏幕上运行它们,舞台会放大(如前所述),并且图形现在变成它们的实际尺寸

想象一下,每部手机具有相同的显示尺寸(比方说4英寸)。但每个人都有不同的分辨率 - 320x840,640x960,720x1280等等。所以如果你想让你的应用看起来好像是一样,有一个100%宽的按钮 - 然后为它提供一个100%分辨率的图形!因此,您的图形应该以不同的大小显示 - 320px,640px等。

当然,你不能匹配所有的设备。所以这里来了'纵横比' - 一个数字,表示屏幕的大小。如果您的基准为320x480,并且您在640x960上运行,则您的纵横比将为2.因此,您从文件夹'assetsx2'(或任何您称之为的文件夹,只要您有一些系统读取它)即可获得资产。如果你在不同的显示器上运行并且日粮比例为2.8,那么将它舍入为3.这样图像会得到一些缩放,但是缩放3到2.8比缩放3到1要好,对吗?你越缩放,它就会变得模糊。

我对很长的答案感到抱歉,但我试图解释它不是很技术性。有很多关于这方面的文章。这两个资源帮我最当我开始:

http://sebastien-gabriel.com/designers-guide-to-dpi/home - 信息是怎么回事 http://screensiz.es/phone - 关于不同的设备,它们的大小,分辨率,宽高比,和你的文件夹的命名方式资讯信息(有约定)。

希望有帮助! :)

p.s.忘记补充说,这是所有关于图形,考虑到你可能会建立一个用户界面,所以你使用图形。尽管如此,无论您使用什么样的图形,整个想法都有效 - 您只需要使用固定大小的舞台,根据它来定位所有内容,然后再考虑缩放因子。因此,对于640像素宽屏幕上的100%宽度的按钮,而不是将其宽度设置为620像素,边距为10像素的边距,则需要将其设置为310像素,每边保留5像素边距。

+0

谢谢。但只有这一行代码适用于我:stage.scaleMode = StageScaleMode.NO_BORDER;我的应用程序现在可以在iphone 4和5上很好地工作。 – user3806613 2014-11-25 16:38:19