public static function registerFont(font:Class):void
在全域字體清單中註冊字體類別
例:Font.registerFont(ShareFont);
※ 從主檔載入外部字型分享swf檔,嵌入外部引入的字型資訊
//registerFont()方法
//public static function registerFont(font:Class):void
//在全域字體清單中註冊字體類別,才能提供給其它檔案嵌入字型。
//參數↓
//font:Class — 您要新增至全域字體清單中的類別。
‧TextField 內的字元使用嵌入之字型 (點擊文字欄位中的文字,跳窗連結至所顯示的url)
(一)首先必須做一個元件庫中含有嵌入字型的swf檔。開一新檔名為 991115_shareFont.fla
如同 [AS3]嵌入字型 - TextField.embedFonts ( 一 ) 的說明,在元件庫新增字體
(二)按 [+] 新增字體後,到右邊選擇字型、字元範圍,填入名稱。
(三)切換的[ActionScript]頁嵌,外框模式選[傳統],勾選[匯出給ActionScript使用、[匯出在第一影格],填入類別命名,此處為[ ShareFont ],這類別名稱在ActionScript中將被引用。*** 注意,由於這字型要分享給其它Flash檔案使用,必須在下方[共享區塊勾選[匯出給執行階段共享],並將URL欄位填入此FLA 將匯出的SWF檔名,此處為[ 991115_shareFont.swf ]。
(四}到主場景第一影格寫入以下AS,並將991115_shareFont.fla匯出為991115_shareFont.swf
//
var a = Font.enumerateFonts();
trace("991115_shareFont.swf裡的嵌入字型為 " + a[0].fontName);
//
//registerFont()方法
//public static function registerFont(font:Class):void
//在全域字體清單中註冊字體類別
//參數↓
//font:Class — 您要新增至全域字體清單中的類別。
Font.registerFont(ShareFont);
(五)建立此例主檔 991115_TextField.embedFonts_3.fla
主場景第一影格AS3如下~
// import flash.display.Loader; import flash.net.URLRequest; import flash.text.TextFormat; import flash.text.TextField; // var ldr:Loader = new Loader(); //載入外部擁有字型分享資訊的swf檔 ldr.load(new URLRequest("991115_shareFont.swf")); ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, lcHandler); // function lcHandler(e:Event):void { //*******將字体清單的裝置字體設為false,所以字型清單陣列儘剩下嵌入字型 //所引入的嵌入字型只有一個 var embededFonts:Array = Font.enumerateFonts(false); trace("991115_TextField.embedFonts_3.swf裡的嵌入字型為 " + embededFonts[0].fontName); // var aTextFormat:TextFormat = new TextFormat(); //******所引入的嵌入字型只有一個,其名稱就是embededFonts[0].fontName aTextFormat.font = embededFonts[0].fontName; trace("aTextFormat.font = " + aTextFormat.font); aTextFormat.color = 0xffffff; aTextFormat.size = 24; aTextFormat.letterSpacing = -1; aTextFormat.leftMargin = 15; aTextFormat.rightMargin = 15 aTextFormat.target = "_blank"; aTextFormat.url = "http://help.adobe.com/zh_TW/Flash/CS5/AS3LR/flash/text/TextFormat.html#url"; // var aTextField:TextField = new TextField(); //*******在文字欄位實體設定embedFonts(嵌入字型)屬性為真 aTextField.embedFonts = true; aTextField.multiline = true; aTextField.wordWrap = true; aTextField.background = true; aTextField.backgroundColor = 0xff2288; aTextField.x = 100; aTextField.y = 50; aTextField.width = 360; //aTextField.height = 200; aTextField.autoSize = TextFieldAutoSize.LEFT; aTextField.defaultTextFormat = aTextFormat; aTextField.text = "\n"+"http://help.adobe.com/zh_TW/Flash/CS5/AS3LR/flash/text/TextFormat.html#url"+"\n\n"; //aTextField.setTextFormat(aTextFormat); addChild(aTextField); }
適用於 Adobe Flash Professional CS5 的 ActionScript 3.0 參考__flash.text.Font.enumerateFonts()方法
適用於 Adobe Flash Professional CS5 的 ActionScript 3.0 參考__flash.text.Font.fontName屬性
適用於 Adobe Flash Professional CS5 的 ActionScript 3.0 參考__flash.text.Font.registerFont()方法
沒有留言:
張貼留言