做一个 Flex 4.6 移动应用程序我正在尝试添加一个资产 .png 文件,以在所有不同的视图和方向上显示为应用程序的背景。有没有人想出办法做到这一点?
任何帮助,将不胜感激 :)
做一个 Flex 4.6 移动应用程序我正在尝试添加一个资产 .png 文件,以在所有不同的视图和方向上显示为应用程序的背景。有没有人想出办法做到这一点?
任何帮助,将不胜感激 :)
我一直在这个洞里,我知道出路。
您需要为您的应用程序创建一个皮肤类。不必太复杂,这就是我的文件 (appSkin.mxml) 的样子。
<?xml version="1.0" encoding="utf-8"?><s:Skin xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark">
<fx:Metadata>
[HostComponent("spark.components.View")]
</fx:Metadata>
<!-- states -->
<s:states>
<s:State name="disabled" />
<s:State name="normal" />
</s:states>
<s:BitmapImage source="@Embed('assets/bg.png')" width="100%" height="100%" />
<s:Group id="contentGroup" width="100%" height="100%" minWidth="0" minHeight="0" />
<!-- SkinParts
name=contentGroup, type=spark.components.Group, required=false
-->
然后,您需要在应用程序的开始标记中 将该文件声明为应用程序的skinClass ……</p>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark" applicationDPI="320"
creationComplete="creationCompleteHandler()" xmlns:views="views.*" skinClass="skins.appSkin">
然后你必须做最后一步。您的每个 View 组件都带有一个不透明的背景层,因此您需要在每个组件中显式地将backgroundAlpha值设置为 0。
<s:View xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark" title="Start" backgroundAlpha="0">
这应该可以完成您的任务,即跨多个视图为您的应用程序维护一个通用背景图像。
尝试这样的事情:
<s:View>
<fx:Script>
[Embed(source="myImage.gif")]
public var myImage :Class;
</fx:Script>
<s:Image source="myImage" width="100%" height="100%"/>
</s:View>
但是,我并不期待完美的结果。PNG 是预渲染的位图。很可能它不会在所有视图和方向[和分辨率]上看起来都正确,因为 PNG 的元素可能会倾斜、拉伸或压缩,并且会动态调整大小;例如从纵向切换到横向时。