Thursday, October 16, 2008

How to load fonts from external swf in actionscript 3

Here is the code:

import flash.display.Loader;
import flash.display.LoaderInfo;
import flash.net.URLRequest;
import flash.events.Event;
import flash.text.TextFormat;

var newFormat:TextFormat = new TextFormat();
var fontLoader:Loader = new Loader();
var fontLoaderInfo:LoaderInfo = fontLoader.contentLoaderInfo;

fontLoaderInfo.addEventListener(Event.COMPLETE, onFontLoaded);

fontLoader.load(new URLRequest("
Verdana.swf"));

function onFontLoaded(e:Event):void {
var info:LoaderInfo = e.currentTarget as LoaderInfo;
var loader:Loader = info.content as Loader;

var embeddedFonts:Array = Font.enumerateFonts(false);
for (var i:Number = 0; i < embeddedFonts.length; i++) {
var item:Font = embeddedFonts[i];
trace("[" + i + "] name:" + item.fontName + ", style: " + item.fontStyle + ", type: " + item.fontType);
}
var myTextField:TextField = new TextField();
myTextField.embedFonts = true;
myTextField.text = "Displaying font in textfield from external swf with embdedded fonts.Anon Delivered.";
myTextField.autoSize = TextFieldAutoSize.LEFT;
newFormat.font=embeddedFonts[0].fontName;
newFormat.size=26;
myTextField.setTextFormat(newFormat);
addChild(myTextField);
}


To create Verdana.swf, check this article:
http://services.communitymx.com/content/article.cfm?cid=67A61&print=true