2009-06-18 41 views
0

有沒有類似flash.text.StyleSheet的方法在flash.text.TextFormat中設置多個字體?我想要做的是爲我的項目中的所有文本使用全局通用的TextFormat,並且我想通過提供多種字體來使其更靈活。我決定在flash.text.TextFormat和flash.text.StyleSheet之間,最後我決定使用flash.text.TextFormat,因爲我不需要任何花哨的格式,而且我不想將所有文本都包裹到像<span class="common">...</span>,因爲flash.text.StyleSheet似乎不支持*選擇器(如果我沒有弄錯)。flash.text.TextFormat中的多種字體

回答

1

我使用樣式表 - 我發現它們更容易管理。你甚至可以使用parseCSS函數解析一個外部的CSS樣式表。

你可以通過在標籤中包裝所有內容(可能通過一個函數,然後將默認樣式設置爲body標籤)來解決無*選擇器的問題。

使用樣式表還可以通過定義不同的樣式來更容易地設置文本的部分樣式。

希望這有助於

喬希

0

雅只有每一個文本格式的字體。 (雖然你可以將多種格式應用於文本字段)

我在當前項目中玩過的東西是一個靜態類,它定義了我所有的文本格式,以及一個簡單的接口,用於從我的其他位置應用。我採用了HTML這樣的命名約定來幫助保持清晰。它看起來像這樣:

public class TextFormats 
{ 
    public static const NONE:uint = 0; 
    public static const H1:uint = 1; 
    public static const H2:uint = 2; 
    public static const H3:uint = 3; 
    public static const P:uint = 4; 
    public static const EM:uint = 5; 
    public static const ERROR:uint = 6; 
    //ect... 

    static private var _initialized:Boolean; 
    static private var _formats:Object; 

    public static function getFormat(type:uint):TextFormat 
    { 
     if (!_initialized) init(); 
     return _formats[type] || _formats[NONE]; 
    } 

    static private function init():void 
    { 
     _formats = { }; 
     _formats[NONE] = new TextFormat(); 
     ///ect... 

     _initialized = true; 
    } 
} 

我知道這不是你正在尋找什麼,但它可能會幫助或刺激一個想法。