2010-07-09 123 views
2

我正在使用Flash Builder 4創建應用程序。我需要爲應用程序設置背景圖片。我從XML中獲取數據。Flex中的背景圖像

我使用<mx:Image>作爲背景圖像。但是我需要元素才能被添加到裏面。我如何實現這一目標?我考慮使用圖層,但不知道如何實現這一點。

任何幫助表示讚賞。

乾杯

+0

我使用爲背景圖像 – StuBlackett 2010-07-09 14:29:11

回答

3

一種方法:在我們的Flex應用程序,我們有我們的主箱後面的帆布作爲

<mx:Canvas id="bgImg" width="1280" height="800" 
      backgroundImage="assets/background.jpg" /> 
<containers:FlashContainer id="mainContainer"> 
<!-- HBoxs, VBoxes and loads of other components --> 
</containers:FlashContainer> 

所以,你希望添加其他元素會中的內部存在「靜止畫布」後面的容器,可容納您的圖像。

爲了在Flex 4中使用此功能,需要使用Halo主題(而不是Spark)進行編譯。我們使用flex構建器並在項目編譯器首選項下設置以下標誌。

-theme=${flexlib}/themes/Halo/halo.swc 

,如下圖中:

alt text

+0

爲什麼你會添加一個畫布只是背景,而不是使用上的應用程序標籤的背景圖像? – JeffryHouser 2010-07-09 14:38:39

+0

非常感謝。將主題更改爲「光暈」。在某種程度上工作,但背景圖像現在被推到了正確的位置? – StuBlackett 2010-07-09 14:49:48

+0

@Flextras:我們在Flex 3中使用了這種格式,因爲它給了我們很多對圖像定位和效果的控制權。我們對背景的位置有嚴格的要求,我們也添加了showEffect。所以當圖像加載時,它會淡入,看起來非常乾淨清爽。因此,總體而言,使用組件回答您的問題給了我們更多的控制權。但是,當我們遷移到Flex 4時,我們正在考慮修改此方法以使用Spark皮膚。但是,這種方法並不像應該那樣簡單。 – gMale 2010-07-09 14:54:16

1

在Flex 3模式,你可以在應用程序標籤,它應該有效,讓您的整個應用程序的背景圖像設置backgroundImage

在Flex 4模型中,您需要爲應用程序標記創建自定義外觀類。使用skinClass風格設置皮膚。由於s:Application擴展了SkinnableContainer,因此您應該可以使用默認的SkinnableContainer樣式作爲添加背景圖像的指南。我相信,默認背景只是一個Rect w /一個實心填充。

+0

這是也可以使用XML數據? – StuBlackett 2010-07-09 14:52:31

+0

我所說的並不涉及數據。如果您的背景圖像位置位於XML文檔中,您必須將其解壓爲使用該源值作爲backgroundImage樣式。 – JeffryHouser 2010-07-09 15:48:12

+0

由於您在原始帖子中添加了說明,我將指定圖像不是容器,並且不能將元素放入其中。但是,如果使用絕對定位,則可以將其他組件放在其上。 – JeffryHouser 2010-07-09 15:49:26

0

IM仍然在flex3工作,所以我會用和backgroundImage應用標籤,也不要設置backgroundSize至100%,這兩個特性R ON應用程序標記,

可能會有些幫助2 U

TC