2014-04-25 38 views
0

我有這樣的控制,mx:Text,我想它的htmlText成員分配瓦特/像:Flex:在一個控件中使用多個CSS「樣式名稱」?

<div class="style_header">This text will have, say, Courier as its font</div> 
<div class="style_body">And this one will be, oh I dunno, cuneiform</div> 

然後,在AS我:

var oCSSHeader:CSSStyleDeclaration = new CSSStyleDeclaration; 
var oCSSBody:CSSStyleDeclaration = new CSSStyleDeclaration; 
oCSSHeader.setStyle('font-size', '12'); 
oCSSHeader.setStyle('font-family', 'Courier'); 
oCSSBody.setStyle('font-size', '14'); 
oCSSBody.setStyle('font-family', 'Cuneiform'); 
StyleManager.setStyleDeclaration('.style_header', oCSSHeader, true); 
StyleManager.setStyleDeclaration('.style_body', oCSSBody, true); 

無論我設置的大小和家屬來說,兩套文字看起來完全一樣。我看了一些例子,並意識到你可能必須將一個完整的控件設置爲一個樣式名稱。這意味着

<mx:Text id="messageText" width="100%" styleName="style_header" /> 

應該已經工作,但它沒有!那麼我做錯了什麼?我沒有收到任何錯誤消息或任何東西。甚至可以在一個控件中設置不同的樣式名稱?

我跑的Flex 3.5

回答

0

嘗試Text.styleSheet

例子:

<fx:Script> 
    <![CDATA[ 
     private function getHtmlTextStyle():StyleSheet 
     { 
      var style:StyleSheet = new StyleSheet(); 
      style.setStyle(".style_header", {fontSize: "12px", fontFamily: 'Courier'}); 
      style.setStyle(".style_body", {fontSize: "14px", fontFamily:"Cuneiform"}); 
      return style; 
     } 
    ]]> 
</fx:Script> 

<mx:Text id="messageText" width="100%" styleSheet="{getHtmlTextStyle()}"> 
    <mx:htmlText> 
     <![CDATA[ 
     <p class="style_header">This text will have, say, Courier as its font</p> 
     <p class="style_body">And this one will be, oh I dunno, cuneiform</p> 
     ]]> 
    </mx:htmlText> 
</mx:Text> 

在Flex應用程序樣式不併不適用於htmlText
它們實際上是分開的,沒有多大關係,只是使用相同的語法。允許Text.htmlText

此外,

標籤是非常有限的。例如,<div>標記不起作用。有關更多信息,請參閱document