技術(shù)分享 在Flex中嵌入Flex字體的步驟
在學(xué)習(xí)Flex的過程中,你可能會遇到如何在Flex中嵌入Flex字體這樣的問題,這里和大家分享一下,相信本文介紹一定會讓你有所收獲。
如何在Flex中嵌入Flex字體
本文將告訴您如何在Flex中使用ActionScript來嵌入Flex字體。
1.要注意約束性的使用嵌入Flex字體技術(shù),只是嵌入需要的字符,以此來減小文件體積。
2.設(shè)備字體(DeviceFonts)運用在一些特殊設(shè)備,諸如電腦和移動掌上電腦上。當(dāng)你在Flex程序中使用設(shè)備字體時,字體在編譯時是通過名字提及(namereference)在用戶的設(shè)備上保存該字體(storethefont),而在應(yīng)用程序運行時,應(yīng)用程序則嘗試在用戶設(shè)備中定位該字體。(locatethefont)
3.如果沒有發(fā)現(xiàn)字體,它將會尋找一個最接近該字體的設(shè)備字體(itwillmakeabestguessandselectafontthatitdeemstobetheclosestmatchontheuser'sdevice.)
4.開發(fā)者會選擇常用的字體來創(chuàng)建應(yīng)用程序,他們知道那些字體對目標(biāo)設(shè)備來說那是很常用的字體。(Developersusuallycreatetheirapplicationstotargetalimitednumberoffontsthattheyknowarecommonlyavailableonthetargetdevice.)
5.舉個例子,TimesNewRoman,Arial,HelveticaandVerdana常被用與網(wǎng)站字體,因為它們在Windows和Mac系統(tǒng)中都很常用。當(dāng)設(shè)備字體還未被嵌入在Flex應(yīng)用程序中,它們是不會增加文件的尺寸的(SincedevicefontsarenotcompiledintotheFlexapplication,theydonotincreasethefilesizeofthedeployedSWF.)
6.你不能確定你的應(yīng)用程序會在用戶電腦上***的顯示,因為某些字體無法被確認是否安裝在用戶的設(shè)備上,設(shè)備字體是無法運行在Flex的animations效果和effects效果和旋轉(zhuǎn)效果下顯示的。
- <mx:Script>
- //字體將不會顯示
- <mx:Labeltextmx:Labeltext="testRotate"rotation="45"/>
- </mx:Script>
如果您是通過字體文件名或者系統(tǒng)字體名來嵌入Flex字體的話,那么您只能嵌入TrueType類型字體。(Ifyouembedafontbyfilenameorsystemfontname,youcanonlyembedTrueTypefonts.)
7.如果你在flex應(yīng)用程序中使用FlashCS3導(dǎo)出的SWF文件來嵌入Flex字體,你可以嵌入任何可以在Flash中使用的字體.(usingadobeflashcs3-anyfontavailableinFlash)如果在應(yīng)用程序中嵌入Flex字體,要注意它們會增加你的最終生成的SWF文件的大小。嵌入Flex字體可以確保你的應(yīng)用程序可以完全顯示在客戶的電腦上(displaysproperly)。嵌入Flex字體同樣可以顯示于Flexanimations效果中,它可以自動抗鋸齒(anti-aliased)??逛忼X技術(shù)可以平滑特定的尺寸(certainsizes)(這樣效果更好)的字體,提高可讀性。
(Anti-aliasingisasmoothingofthefontcharacterstoimprovetextreadabilityatcertainsizes.)
8.創(chuàng)建抗鋸齒文本有多種算法,但最終的辦法是使用字體顏色陰影(useshadesofthefontcolor)平滑曲線(smoothcurves)和彎曲角度(corners)(butultimatelytheideaistouseshadesofthefontcolortosmoothcurvesandcornersofthetext)。對于字體的抗鋸齒方法,要記住,所有的字體都使用是不必要的??逛忼X技術(shù)不能運用于設(shè)備字體中(Anti-aliasingcannotbecontrolledindevicefonts)。
9.像其它的網(wǎng)絡(luò)資源一樣(Likeallassets),一些字體的使用需要受到許可限制.不錯的字體網(wǎng)站
◆創(chuàng)建嵌入Flex字體步驟:
和嵌入圖片用到的Embed元數(shù)據(jù)指令一樣,嵌入Flex字體也是同的指令。1.首先,可以在主程序文件的前端創(chuàng)建MXMLScript塊,如下:
- <mx:Script>
- <![CDATA]
- [Embed(source="需要嵌入的字體路徑",
- fontName="起一個任意的名稱",fontWeight="bold",
- mimeType="application/x-font")]
- ]]>
- mx:Script>
- //注意事項:
- /*在此鍵入[Embed()]元數(shù)據(jù)指令和它的source屬性,可以使用相對或者絕對路徑。
- (針對本地計算機的TrueType字體文件),同時加上mimeType屬性(聲明嵌入的資源是一種字體)
- (embeddedassetisafont)。
- */
- /*
- 創(chuàng)建私有變量privatevarLogoFont:Class,(和嵌入圖片資源一樣)。您必須聲明該變量。
- 其次,要為該字體起一個名字(注意唯一性),設(shè)置fontName屬性,使用它可以在應(yīng)用程序的樣式中引用到它。
- */
- //應(yīng)用時使用fontFamily樣式(注意這不是屬性),
- <mx:Labeltextmx:Labeltext="embedFontTest"fontFamily="和fontName的名字一樣"fontWeight:"bold"/>
- 同樣可以在MXML中的Style塊中引用到該嵌入Flex字體
- <mx:Style>
- //添加一個自定義的(acustomclassSelector),名字任意。
- .embedFont{
- fontFamily:和嵌入Flex字體的名字一樣
- font-size:22pt;//設(shè)置字體大小
- color:#FFFFFF;//設(shè)置字體顏色
- }
- </mx:Style>
- //使用時指定styleName屬性
- <mx:Labeltextmx:Labeltext="testA"styleName="embedFont"/>
- /*
- 如果加入了字體變粗樣式(fontWeight),會發(fā)現(xiàn)沒有顯示(因為粗字體對于justus字體來說沒有嵌入)
- 您需要在Embed指令中鍵入fontWeight后。如果是通過CSS來應(yīng)用的話,需要在其中申明該樣式。
- */
【編輯推薦】
- 學(xué)習(xí)總結(jié) 在Flex中如何嵌入Flex字體
- FlexBuilder4十大新特性閃亮登場
- 解析AS3中Flex正則表達式的使用
- 學(xué)習(xí)筆記 Flex中設(shè)置Flex滾動條的樣式
- FlexBuilder開發(fā)方法及特點解析