FP10以後as3中若是要對文本框進行縮放和旋轉有兩種可選方式app
一、設置Z軸座標,將文本框變成3d對象,這樣就至關於處理位圖,效果很差。字體
二、使用嵌入字體的方式當文本框嵌入字體後就能夠有效的處理文本框的旋轉和縮放問題了,並且效果很好(相似於處理矢量圖)。3d
嵌入字體有一個問題就是字體文件不小,通常大些的應用須要選擇加載外部字體的方式來獲取字體,實際就是加載包含字體的swf,而後在程序文件中使用這裏面的字體(將其嵌入),就是這裏講的動態嵌入字體。orm
那麼如何實現動態嵌入外部字體呢?
首先來製做字體(這裏是以flash cs5爲開發環境的)。
在庫面板(Ctrl+ L),單機右鍵,在彈出的菜單項中選擇 新建字型 選項,這時候會打開 字體嵌入 窗口。這個窗口的左側列出了你已經建立(和將要建立)的字體,右側是你須要操做的一些參數。首先看右側面板的 選項 面板, 我在 系列 這個下拉選單中選擇一個字體: Brick,這時候,系列 下拉選框的 樣式 下拉選框是灰色的,表示這個字體沒有粗體斜體等字體樣式(這個特色很重要)。我在名稱輸入框輸入新建字體得名稱:brick。點擊 選項 面板旁邊的
ActionScript 面板, 打開這個面板後 在 分級顯示格式 這個單選列表處選擇 傳統(DF3)
在 鏈接 處選擇 爲ActionScript 導出。導出類名爲:brick,基類爲:flash.text.Font。這些作完之後。點擊 字體確認面板 的確認按鈕,就完成了建立字體的工做,這其中會彈出找不到類路徑的警告面板,點擊確認就行了。保存fla並導出swf,個人這個字體swf文件名爲:brick.swf
個人designer.swf須要使用這個 brick.swf 中的字體,我使用Loader加載這個swf
加載成功後,先將字體註冊到字體列表 :
var className:String = "brick";
var c:Class = loader.contentLoaderInfo.applicationDomain.getDefinition(className) as Class;
Font.registerFont(c);
var myFont:Font = new c as Font;
假定有一個文本框 爲 myTF( is TextField),如今將字體嵌入到 myTF 中
myTF.embedFonts = true;
var format:TextFormat = new TextFormat ();
format.font = myFont.fontName;
myTF.defaultTextFormat = format; //defaultTextFormat和setTextFormat的區別:defaultTextFormat要放在文本賦值以前,而setTextFormat()要放在文本賦值以後。
myTF.text = "abc";
這樣的話字體 Brick就嵌入成功了。記得,若是用myTF.defaultTextFormat = format;
這個方式來更改文本樣式的話,就只能先更改樣式再設置文本纔有效。對象
上面講了,這個字體Brick是沒有樣式的(即沒有粗體斜體等樣式的,樣式 下拉選框是灰色的) ,因此用上面的方式就能夠嵌入字體使用了。ip
可是若是一個字體有樣式(例如粗體斜體等),那用上面的方法就不行了。要用以下的方式來作:
上面講了,designer.swf 是主程序文件,由它來使用brick.swf中的字體。如今要使用一個帶有樣式的外部字體:Verdana。目錄結構以下:
designer.swf
assert(文件夾):
verdana.swf
verdana.swf是存放字體Verdana的swf文件
如何建立Verdana字體呢?在verdana.fla文件的庫中用上述的方法建立Verdana字體,導出類名爲verdana。這裏要加一條。就是在 字體嵌入 窗口的 ActionScript面板的 共享 選項位置 勾選 爲運行時共享導出。在 URL 輸入框 輸入: verdana.swf。而後點擊肯定建立字體完成。
這還不夠,由於要在designer.swf中使用Verdana字體,因此也要在designer.fla中建立一個Verdana字體,字體名字爲verdana和verdana.swf中的導出類名一致。注意,這裏在ActionScript面板要選擇 爲運行時共享導入 ,URL輸入框輸入: assert/verdana.swf。注意這裏不要選擇 爲ActionScript 導出 .
好了,如今就能夠用 Verdana字體 做爲嵌入字體了。如何使用和上面的方式同樣。只是format能夠用粗體了開發