基本はblog.taiga.jpさんの記事を参照すればできました。ありがとうございますです。
>> TLF (Text Layout Framework) と戯れる #09
あと、皆様の記事を参考にしました。どうもです。助かりました。
>> [AS]TLF用にCFF形式のフォントを埋め込んだSWFがどうやっても作れない →解決!!!(memo.393)
>> TextlayoutFrameworkやFlash.text.engineで埋め込みOpenTypeフォントを使う方法(高橋文樹.com)
>> 新テキストエンジンFlash.text.engineでOpenTypeのフォントを埋め込みで使う(SIHOのActionScript勉強メモ)
>> Flex 4で画像の埋め込みでエラー & flex-config.xmlのバージョンアップ(sub Diary (仮))
流れを書いておきます
FlashDevelop(FD)でフォントの埋め込みをしました。
FlashDevelopでのフォントの埋め込み
Flex4SDKbeta2をダウンロード(Flex 4-Beta 2のAdobe Flex SDK)
解凍してできたフォルダのパスをFDに通す
Tools > Program Settings > AS3Context > Language > FlexSDK Location
■新規プロジェクトの作成
Project > New Project > AS3 Project
srcに埋め込みたいフォントを置く。今回はVerdanaとVerdanaBoldを埋め込む。
src
|-verdana.ttf
|-verdanab.ttf
|-MyFont.as(Main.asから名前変更した)
プロジェクトの設定
Project > Properties > Complier Options > Additional Compiler Options
に以下を追加
-static-link-runtime-shared-libraries=true
今回は英語フォントのみ埋め込みした。
unicodeのレンジはここから
package
{
import flash.display.Sprite;
import flash.events.Event;
/**
* ...
* @author KinkumaDesign
*/
public class MyFont extends Sprite
{
[Embed(
source = "verdana.ttf",
fontName = "MyVerdanaRegular",
mimeType = "application/x-font",
embedAsCFF = "true",
advancedAntiAliasing = "true",
unicodeRange = "U+0020-U+007e"
)]
public static const MyVerdana1:Class;
[Embed(
source = "verdanab.ttf",
fontName = "MyVerdanaBold",
mimeType = "application/x-font",
embedAsCFF = "true",
advancedAntiAliasing = "true",
unicodeRange = "U+0020-U+007e"
)]
public static const MyVerdana2:Class;
public function MyFont()
{
}
}
}
これでコンパイルしてできたswfをFontEmbed.swfとする
CS4で使う
前の記事を参考にMXPをインストールしておく
>> [AS3] TextLayoutFrameworkをCS4で使えるようにする
ライブラリ上にTextLayoutを追加する
ドキュメントクラスをこんな感じにするとできた!!!!!!!!!!!
package
{
import flash.display.Graphics;
import flash.display.Loader;
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.events.Event;
import flash.events.IOErrorEvent;
import flash.net.URLRequest;
import flash.system.ApplicationDomain;
import flash.system.LoaderContext;
import flash.text.engine.FontLookup;
import flash.text.engine.FontWeight;
import flash.text.Font;
import flashx.textLayout.edit.SelectionManager;
import flashx.textLayout.elements.ParagraphElement;
import flashx.textLayout.elements.SpanElement;
import flashx.textLayout.formats.LineBreak;
import flashx.textLayout.container.DisplayObjectContainerController;
import flashx.textLayout.conversion.ImportExportConfiguration;
import flashx.textLayout.conversion.TextFilter;
import flashx.textLayout.edit.EditManager;
import flashx.textLayout.elements.Configuration;
import flashx.textLayout.elements.TextFlow;
import flashx.textLayout.formats.CharacterFormat;
import flashx.textLayout.formats.TextDecoration;
/** Demonstrates customizing the Configuration used by the importer */
public class Main extends MovieClip
{
public var fontUrl:URLRequest;
private var MyVerdana:Class;
private var MyVerdanaBold:Class;
public function Main()
{
load();
}
private function load():void
{
var context:LoaderContext = new LoaderContext();
context.applicationDomain = ApplicationDomain.currentDomain;
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.INIT, fontLoaded);
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, showError);
fontUrl = new URLRequest("FontEmbed.swf");
loader.load(fontUrl, context);
}
function fontLoaded(e:Event):void
{
MyVerdana = ApplicationDomain.currentDomain.getDefinition("MyFont_MyVerdana1") as Class;
MyVerdanaBold = ApplicationDomain.currentDomain.getDefinition("MyFont_MyVerdana2") as Class;
Font.registerFont(MyVerdana);
Font.registerFont(MyVerdanaBold);
addText();
}
private function addText():void
{
var textFlow:TextFlow = new TextFlow();
var p:ParagraphElement = new ParagraphElement();
textFlow.addChild(p);
var span:SpanElement = new SpanElement();
span.text = "Hello, World ParagraphElement";
span.fontSize = 36;
span.fontFamily = Font(new MyVerdana()).fontName;
span.fontLookup = FontLookup.EMBEDDED_CFF;
p.addChild(span);
var span2:SpanElement = new SpanElement();
span2.text = "Hello2, World ParagraphElement";
span2.fontSize = 36;
span2.fontFamily = Font(new MyVerdanaBold()).fontName;
span2.fontLookup = FontLookup.EMBEDDED_CFF;
p.addChild(span2);
textFlow.flowComposer.addController(new DisplayObjectContainerController(this, 400, 400));
textFlow.flowComposer.updateAllContainers();
}
function showError(e:Event):void
{
trace("Error opening: " + fontUrl.url);
}
}
}
[...] こちらの記事を参考にさせて頂きました。ありがとうございます。 http://119.245.215.115/blog/2010-03-12/1659 [...]