在flex 4.6中添加背景图像

时间:2012-11-07 10:10:01

标签: flex

执行Flex 4.6移动应用程序我正在尝试添加资产.png文件,以便在所有不同的视图和方向上显示为应用程序的背景。有没有人想办法做到这一点呢?

任何帮助将不胜感激:)

2 个答案:

答案 0 :(得分:0)

我一直在这个洞里,我知道出路。

您需要为应用程序创建外观类。在这里,我的文件(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 ...

<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">

这应该可以完成您在多个视图中为应用程序维护通用背景图像的任务。

答案 1 :(得分:-1)

尝试这样的事情:

<s:View>
 <fx:Script>
    [Embed(source="myImage.gif")]
    public var myImage :Class;
  </fx:Script>
  <s:Image source="myImage" width="100%" height="100%"/>
</s:View>

Info about Embedding images in Flex

然而,我并不期待完美的结果。 PNG是预渲染的位图。很可能它不会在所有视图和方向[和分辨率]上看起来正确,因为PNG的元素可能会被歪斜,拉伸或压缩,并且它会在运行时调整大小;例如,从纵向切换到横向时。