我刚刚在iPhone 5上测试了我的第一个Flex移动应用程序,但我认为它不适合新的4英寸屏幕。有人知道这是否已经可行吗?(使用Flex 4.6 SDK)
答案 0 :(得分:3)
这有点傻,但它有效。首先,请确保您已the latest AIR SDK installed in your Flash Builder eclipse plug in directory。这将确保以下技巧确实有效。
现在,转到项目主MXML文件(如果您正在构建一个基于视图的项目,它将是一个ViewNavigatorApplication类实例)。在打开的ViewNavigatorApplication标记中,为splashScreenImage放置一个值为“@Embed('Default568h@2x.png')”的属性。看起来应该是这样......
<s:ViewNavigatorApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
firstView="views.myFirstView"
splashScreenImage="@Embed('Default-568h@2x.png')">
现在,制作一个640w x 1136h的闪屏png,并将其命名为“Default-568h@2x.png”。将该图像文件放在项目的根目录(可能是您的“src”目录)中。编译你的iPhone 5目标并瞧!
事实证明,AIR会查找更大的启动画面文件,作为指向iPhone 5屏幕尺寸的指标。 app.xml文件中没有设置。代码中没有属性。只是那个splashScreenImage文件名。
这很明显,是吗?
就为不同的屏幕尺寸创建不同的布局而言,Rich Tretola有一本非常便宜的书,即使用Flex 4.5的iOS应用程序,它讨论了使用@media查询的响应式设计。 His website has an excerpt that might help ......但这本书很便宜,实用且易于阅读。
答案 1 :(得分:2)
您可以像这样动态更改启动画面:
<?xml version="1.0" encoding="utf-8"?>
<s:SplashScreenImage xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark">
<fx:Script>
<![CDATA[
override public function getImageClass(aspectRatio:String, dpi:Number, resolution:Number):Class
{
var x:Number = Capabilities.screenResolutionX;
var y:Number = Capabilities.screenResolutionY;
// HTC
if ((x == 480) && (y == 800)) return img_480_800.source;
// iPhone 5
if ((x == 640) && (y == 1136)) return img_1080_1920.source;
// iPhone 4
if ((x == 640) && (y == 960)) return img_640_960.source;
// Samsung galaxy s3
if ((x == 720) && (y == 1280)) return img_720_1280.source;
// Samsung galaxy s4
if ((x == 1080) && (y == 1920)) return img_1080_1920.source;
// Default
return img_1080_1920.source;
}
]]>
</fx:Script>
<s:SplashScreenImageSource id="img_480_800" source="@Embed('Default_480_800.png')"/>
<s:SplashScreenImageSource id="img_640_960" source="@Embed('Default@2x.png')"/>
<s:SplashScreenImageSource id="img_720_1280" source="@Embed('Default_720_1280.png')"/>
<s:SplashScreenImageSource id="img_1080_1920" source="@Embed('Default-568h@2x.png')"/>
</s:SplashScreenImage>
...
splashScreenImage="DynamicSplashScreen"