2011-04-13 108 views
4

我想通過CSS定義我的Flex 4皮膚,但我的自定義皮膚不會顯示。下面是我在做什麼:用CSS定義Flex 4皮膚

在我的應用程序導入我的CSS和我的按鈕定義的styleName:

 <fx:Style source="styles.css"/> 
     <s:Button label="Button" styleName="circle"/> 

這裏是我的CSS:

@namespace s "library://ns.adobe.com/flex/spark"; 
@namespace mx "library://ns.adobe.com/flex/mx"; 

s|Button.circle 
{ 
    skinClass: ClassReference("skins.buttons.CircleButton"); 
} 

我的理解是,我的按鈕應該通過CSS提供它的skinClass,但它無法工作。如果我直接定義皮膚類如下圖,它工作正常:

<s:Button label="Button" skinClass="skins.buttons.CircleButton"/> 

任何幫助,將不勝感激。

+1

你是否在主應用程序文件中聲明瞭Style標籤? – Constantiner 2011-04-13 21:10:02

+0

我在視圖中定義它,我只是將它移到主應用程序文件中,現在它可以很好地處理類型選擇器。謝謝! – redHouse71 2011-04-13 21:47:19

回答

0

請確保您有根應用程序文件在你的CSS文件中的第一。其次,我會嘗試在沒有類型選擇器的情況下執行css,因此不要使用s|Button.circle,只需要執行.circle

編輯

您也可以嘗試把風格樣式標籤相同的容器內,你的按鈕,看看是否能工程。你確定你的應用程序可以找到你的style.css嗎?顯示更多代碼可能有助於這種情況。

+0

謝謝!我按照你的建議刪除了類型選擇器,它工作。我正在關注使用它的Adobe電視教程(http://tv.adobe.com/watch/adc-presents/migrating-to-flex-4-using-skins/),所以我猜想它會起作用,我將如何確保所有按鈕都使用了一個皮膚? – redHouse71 2011-04-13 21:38:06

+0

您可以使用類型選擇器,然後使用s | Button {...}'。 – 2011-04-13 21:40:29

0

official Flex CSS documentation

類選擇:滿足一類 條件A CSS類選擇 匹配組件。聲明 類選擇器的CSS語法是在 條件的前面添加一個點。您可以通過 將類別選擇器聲明爲類型選擇器的 條件,或者將 聲明爲符合 類別條件的任何類型。

.header { background-color: #CCCCCC; } 

HBox.footer { background-color: #999999; } 

注:在Flex一類條件使用上的 部件styleName來屬性滿足 。例如,您可能有兩類HBox:「標題」和 「頁腳」。以上,第一個選擇器 適用於任何具有 styleName =「header」的組件;第二 選擇應只適用於HBox中 部件用的styleName =「頁腳」 (的東西,實際上需要在 固定和濃湯執行,如 最新類選擇僅獲 普及和任何類型的選擇 被忽略)。

它看起來像選擇可能不會在濃湯工作...

+0

自從去年發佈以來,它不再被稱爲'Gumbo',你的例子是Flex 3。 – 2011-04-13 21:30:38

+0

你能選擇類選擇器嗎?我以前沒有和他們一起工作過。Gumbo仍然是Flex 4/4.1的代號。英雄是4.5的代號。這些名字在發佈後不會消失。 – 2011-04-13 21:33:39

+0

代號是用於尚未確定名稱或版本的產品。你聽不到任何人使用代號爲Longhorn的Windows 7來呼叫Windows?現在是Flex 4。 Flex 4.5代號爲Hero,因爲尚未最終確定。 – 2011-04-13 21:38:59