flash - 为 AS3 嵌入字体。如何?

标签 flash actionscript-3 embed

我使用 Flash Professional CS5 嵌入了字体,但我仍然无法在我的 AS 代码中使用它。我应该如何嵌入字体才能在 AS3 和 Flash Professional CS5 中使用它?

最佳答案

我做了一些稍微不同的事情。 :D embedAsCFF 如果您希望使用旧的 TextFields,则应为 false,如果您使用新的文本引擎,则应为 true。

public class Font_Arial
{

    [Embed(source   = 'Arial.ttf'
    ,fontFamily     ='_Arial_'
    ,fontStyle      = 'normal'  // normal|italic
    ,fontWeight     = 'normal'  // normal|bold
    ,mimeType       = "application/x-font-truetype"
    ,unicodeRange   = 'U+0020-U+002F,U+0030-U+0039,U+003A-U+0040,U+0041-U+005A,U+005B-U+0060,U+0061-U+007A,U+007B-U+007E'
    ,embedAsCFF     = 'false'
    )]
    private const _regular:Class;

    [Embed(source   = 'Arial_i.ttf'
    ,fontFamily     ='_Arial_'
    ,fontStyle      = 'italic'  // normal|italic
    ,fontWeight     = 'normal'  // normal|bold
    ,mimeType       = "application/x-font-truetype"
    ,unicodeRange   = 'U+0020-U+002F,U+0030-U+0039,U+003A-U+0040,U+0041-U+005A,U+005B-U+0060,U+0061-U+007A,U+007B-U+007E'
    ,embedAsCFF     = 'false'
    )]
    private const _italic:Class;

    [Embed(source   = 'Arial_b.ttf'
    ,fontFamily     ='_Arial_'
    ,fontStyle      = 'normal'  // normal|italic
    ,fontWeight     = 'bold'    // normal|bold
    ,mimeType       = "application/x-font-truetype"
    ,unicodeRange   = 'U+0020-U+002F,U+0030-U+0039,U+003A-U+0040,U+0041-U+005A,U+005B-U+0060,U+0061-U+007A,U+007B-U+007E'
    ,embedAsCFF     = 'false'
    )]
    private const _bold:Class;

    [Embed(source   = 'Arial_bi.ttf'
    ,fontFamily     ='_Arial_'
    ,fontStyle      = 'italic'  // normal|italic
    ,fontWeight     = 'bold'    // normal|bold
    ,mimeType       = "application/x-font-truetype"
    ,unicodeRange   = 'U+0020-U+002F,U+0030-U+0039,U+003A-U+0040,U+0041-U+005A,U+005B-U+0060,U+0061-U+007A,U+007B-U+007E'
    ,embedAsCFF     = 'false'
    )]
    private const _boldItalic:Class;

    public static const name:String = "_Arial_";

    public function Font_Arial()
    {
        Font.registerFont(_regular);
        Font.registerFont(_italic);
        Font.registerFont(_bold);
        Font.registerFont(_boldItalic);
    }
}

然后你可以使用类似的东西

var _format:TextFormat = new TextFormat(Font_Arial.name, 16,....)

您需要确保 name 静态常量与字体中的 fontFamily 相同。它们都被赋予相同的名称,因此它们都充当 1 种字体,如果文本字段设置为粗体或斜体或粗体和斜体或只是普通的旧常规,文本字段将选择正确的样式来使用。

然后我会为不同的字体“集”制作不同的类

关于flash - 为 AS3 嵌入字体。如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7412379/

相关文章:

javascript - Flash 的打印 Action 可以从 JavaScript 触发吗?

javascript - Animate CC javascript 按钮始终无法正常工作?

android - 在安卓应用中嵌入 ZXing

java - 使用 Java 将 PDF 转换为 Swf

android - 如何静音/控制 WebView/Flash 音量?

actionscript-3 - 调用函数 vs 调度事件

actionscript-3 - 在 AS3 中获取宽度、高度、沿 3D 空间对象的位置

python - Py_InitModule4()在嵌入式Python解释器(使用Cython)上返回NULL

jupyter-notebook - 如何将 plotly 可视化嵌入到谷歌幻灯片中?

Flash 和 HTTP 状态代码 207