成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

學習總結 在Flex中如何嵌入Flex字體

開發 后端
Flex字體的概念你是否了解,本文向大家介紹一下如何在Flex中嵌入Flex字體,在Flex中所有非系統安裝Flex字體都需要注冊后才能使用。

本文和大家重點討論一下在Flex中嵌入Flex字體方法,在Flex中所有非系統安裝Flex字體都需要注冊后才能使用。希望本文的介紹能讓你有所收獲。

在Flex中嵌入Flex字體方法總結

嵌入Flex字體

語法

  1. [Embed(source="C:/WINDOWS/Fonts/arial.ttf",   
  2. fontName="Arial",  
  3.  mimeType="application/x-font")]  
  4.  
  5. private var ArialFont:Class;  

source: 字體文件所在路徑(本地)
fontName: 程序中所使用的字體別名
mimeType: 照抄就行了=_=

其中source還可以是指定為字體名稱,而不一定是字體文件.另外還有其它屬性可以設置,詳細查看這里

在Flex中所有非系統安裝Flex字體都需要注冊后才能使用。對于一個用上述方法直接嵌入字體的Flex程序,該嵌入字體會被自動注冊。
可以通過以下程序查詢:

  1. var font_list:Array = Font.enumerateFonts();  
  2.  
  3. for(var i:int=0; i<font_list.length; i++)  
  4.  
  5.     trace(Font(font_list[i]).fontName);  
  6.  

 嵌入的Flex字體會排列在前面.

◆問題是,如果系統里面有這個字體,我何必還要去嵌入呢?

假如你的系統里面有個奇怪的字體,當你肆無忌憚的用在了你的項目里,而整個作品仍到網上后,其它用戶的機器里面沒有這個奇怪的字體,他們可能就看不到,或者看到的是他們系統中所帶字體顯示出來的文字。這顯然不是你想要的,所以,在使用一些別人可能沒有的字體時,嵌入是很有必要的.但如果就這樣直接嵌入,最直接的影響就是加大swf文件的大小.可憐我們這些用漢字的,一個中文字體動不動就幾M...orz.如果一個項目有一堆swf要用幾個相同的中文字體,每個swf都嵌一遍,估計這個項目加起來不會比帝國時代來的小-_-.說的再技術性一點,這么做還不便于維護,修改等等......
此類問題可算是老生常談了,所以我們要做的辦法就是共享字體.

這個方法在flash里面很簡單,只要在庫中選擇添加新字體,然后選擇自己要的字體,修改元件屬性為共享導出,最后發布就行了.具體看這里

整個過程就是如何去使用共享庫,這個技術很古老了,但還是很管用的,到了Flex2,這個過程實際上更簡單了,如果有flash的朋友,可以直接看Flex的幫助 - 如何使用flash類型的字體

我這里要講的是,不用flash,直接用Flex完成所有動作.

首先,挑個要嵌入的Flex字體,比如04b_08,這個字體不是每個人都裝的.因為Flex可以用程序來支持直接嵌入字體,所以挑的字體不管是否已經安裝在系統中,都是無所謂的.測試的時候,你也可以把安裝在系統中的字體先刪除(記得備份),有些系統字體是無法刪除的,比如Arail,Verdana,宋體等.

接著,建立一個as文件,叫FontAssets.as好了,寫入如下代碼后保存 package

  1. {  
  2.  
  3.     import flash.display.Sprite;  
  4.  
  5.     public class FontAssets extends Sprite  
  6.  
  7.     {  
  8.  
  9.         [Embed(source="assets/04b_08.ttf"fontName="04b_08"mimeType="application/x-font")]  
  10.  
  11.         public var PixelFont:Class;  
  12.  
  13.     }  
  14.  
  15. }  

as3語法我就不多說了,不清楚的看這里

◆為什么要繼承Sprite呢?

因為這個swf文件要在以后的程序中被加載.被加載的swf基類必須是繼承Sprite的.你不信的可以試試不繼承,這個swf可以通過編譯,但加載他的就無法通過編譯了,如果關掉嚴格檢測,運行時就會拋異常...
其實嘛,想想flash,root的類型就是MovieClip,是必然存在的,所以要生成一個swf,必須繼承Sprite也是合理的.因為在as3里面,MovieClip是繼承Sprite的

◆兩個字體對象,為什么要聲明為public呢?

因為到時候要在外部訪問這兩個對象呀.當然,有心人也可以用getter方法來設置成為"只讀"的,我這里就懶一下了^^_.

接著,建立一個mxml文件,叫testSharedFonts.mxml.寫入以下代碼并保存
 

  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <mx:Application   
  3. xmlns:mx="http://www.adobe.com/2006/mxml"   
  4. layout="absolute" 
  5. styleName="plain" 
  6. > 
  7.   <mx:Script> 
  8.   <![CDATA[  
  9.     private function fontLoadComplete(evt:Event):void  
  10.     {  
  11.        try{  
  12.         Font.registerFont( evt.target.content["PixelFont"] );  
  13.  
  14.         txt1.setStyle("fontFamily", "04b_08");  
  15.        }  
  16.        catch(e:Error){  
  17.         trace(e.toString());  
  18.        }  
  19.     }  
  20.   ]]> 
  21.   </mx:Script> 
  22.     <mx:SWFLoader source="FontAssets.swf" complete="fontLoadComplete(event);"/> 
  23.     <mx:VBox> 
  24.         <mx:Text id="txt1" text="test words" fontSize="12"/> 
  25.         <mx:Text id="txt2" text="test words" fontSize="12"/> 
  26.     </mx:VBox> 
  27. </mx:Application> 
  28.  

 ◆Flex字體嵌入成功,要注意以下幾點

1.注冊字體的時候,訪問PixelFont的方法是當初AS2時候典型的作弊方法,目的為了騙過編譯器,省的它說,當前對象沒有這個變量或方法.但是 AVM2比較牛,如果訪問的變量或方法確實不存在或者是訪問權限不對,它會在運行時拋異常,這也是為什么,上面我要聲明為public的原因!

2.加載進來的共享字體,一定要先注冊才能使用,對于FontAssets.swf,前面說過,當PixelFont在嵌入的同時就已經注冊好了,但是對于testSharedFonts.swf,則不是,所以加載完了FontAssets.swf之后,還要注冊.

3.一個FontAssets可以同時嵌入多個字體,這樣就可以形成一個共享字體庫,但要注意如果字體太多,這個庫(swf文件)也會變的很大.
 

【編輯推薦】

  1. Flex滾動條常見問題解答
  2. FlexBuilder4十大新特性閃亮登場
  3. 學習筆記 Flex中設置Flex滾動條的樣式
  4. 揭開Flex正則表達式的神秘面紗
  5. FlexBuilder開發方法及特點解析 

 

 

責任編輯:佚名 來源: bbs.cnsoftware.cn
相關推薦

2010-08-09 15:41:13

Flex字體

2010-08-10 14:08:09

Flex嵌入字體

2010-08-06 13:22:48

FlexCSS

2010-08-13 10:01:46

Flex樣式定義

2010-08-05 13:27:06

Flex布局

2010-07-30 13:40:59

Flex開發

2010-07-30 12:56:02

Flex調用JavaS

2010-08-09 15:19:29

Flex滾動條

2010-08-04 09:26:27

Flex數據

2010-08-10 16:41:54

FlexJSP

2010-07-27 15:36:15

Flex swf

2010-07-27 13:46:18

Flex swf

2010-07-27 10:39:25

Flex組件

2010-08-10 15:55:20

FlexHTML頁面

2010-08-09 15:52:28

2010-08-09 16:01:37

Flex字體

2010-07-30 15:18:26

Flex

2010-08-12 13:34:13

Flex驗證組件

2010-08-09 10:21:56

XMLFlex

2010-08-12 11:05:33

Flex數據綁定
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人国产精品久久久 | 91麻豆精品国产91久久久资源速度 | 波多野结衣二区 | 一级片免费网站 | 可以看黄的视频 | 毛片免费看 | 国产精品特级毛片一区二区三区 | 谁有毛片 | 欧美视频三区 | 在线中文字幕国产 | 精品一区二区三区在线播放 | 日本网站免费观看 | 成人精品鲁一区一区二区 | 日韩在线中文字幕 | 成人毛片在线观看 | 国产人成在线观看 | 欧美日韩91 | 狠狠的干狠狠的操 | 国产精品一区二区三区四区 | 国产精品精品视频一区二区三区 | 日韩一区二区黄色片 | 在线成人一区 | 成人精品久久 | 一区二区三区视频在线 | 亚洲免费视频一区二区 | 在线天堂免费中文字幕视频 | 国产乱码精品一区二区三区五月婷 | 久久久久久亚洲 | 欧美一级在线观看 | 国产亚洲欧美日韩精品一区二区三区 | 欧美色综合一区二区三区 | 爱爱综合网 | 中文字幕一区二区三区在线观看 | 国产精品国产三级国产aⅴ无密码 | 日本三级网站在线观看 | 欧美日韩在线免费观看 | 99久久精品免费 | 久久精品一区二 | 91视视频在线观看入口直接观看 | 美女在线观看av | 精品成人av |