Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 [embed]标记和字体的问题_Actionscript 3_Fonts_Embed - Fatal编程技术网

Actionscript 3 [embed]标记和字体的问题

Actionscript 3 [embed]标记和字体的问题,actionscript-3,fonts,embed,Actionscript 3,Fonts,Embed,我对[embed]标记有一些问题。即使我将textfield的EmbeddeFonts属性设置为true,文本也不会显示 问题是,它以前工作过,但经过一些更改(与字体无关)后就不工作了。我想了解字体的嵌入过程是如何在代码中查找错误的 我宣布: [Embed(source = 'asset/font.ttf', fontName="font", mimeType="application/x-font-truetype")] private static var font:String; 将字体

我对[embed]标记有一些问题。即使我将textfield的EmbeddeFonts属性设置为true,文本也不会显示

问题是,它以前工作过,但经过一些更改(与字体无关)后就不工作了。我想了解字体的嵌入过程是如何在代码中查找错误的

我宣布:

[Embed(source = 'asset/font.ttf', fontName="font", mimeType="application/x-font-truetype")] private static var font:String;
将字体指定给程序

然后在声明文本格式时调用“字体”。“fontName”属性是文本格式的链接吗

我使用flashdevelop和flex_sdk_4.0.0.14159(大型adobe软件,含air(~140mo))

谢谢


-腿

这可能是一件棘手的事情,要想做到恰到好处。大约10天前,我不得不与之抗争,只有尝试将几个名称和参数组合到嵌入中,我才能让它工作

我读过一些博客报道,其中有一些轶事建议,如果你需要加粗或其他什么的话,你必须加入fontStyle。这是对我有用的咒语:

[Embed(source="assets/HelveticaBold.ttf",
       fontName="HelveticaBold",
       fontWeight="bold",
       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')]
private static var HelveticaBold:Class;
我不认为unicodeRange是绝对必要的,但我不需要整个字体,上面的内容与IDE中的“基本拉丁语”相当

当我想使用字体时,我会这样做:

    var titleFormat:TextFormat = new TextFormat();
    titleFormat.font = "HelveticaBold";
    titleFormat.bold = true;
    titleFormat.color = 0x0;
    titleFormat.size = 18;

    var errorTitle:TextField = new TextField();
    addChild(errorTitle);
    errorTitle.embedFonts = true;
    errorTitle.autoSize = TextFieldAutoSize.LEFT;
    errorTitle.antiAliasType = AntiAliasType.ADVANCED;
    errorTitle.x = 5;
    errorTitle.y = 5;
    errorTitle.defaultTextFormat = titleFormat;
我不敢相信我错过了最重要的一块。在我强制mxmlc编译器使用自定义字体管理器之前,上述操作都不起作用

添加以下内容作为编译器选项:

-managers=flash.fonts.AFEFontManager

屏幕上有一个Adobe technote,列出了可用的字体管理器。尝试它们,直到找到一个有效的。

问题来自4.0 Flex SDK中的修改


我将兼容性设置为Flash player 9(使用sdk 3.4),它再次工作。

您说它以前工作过(在您进行更改之前)。。。你做了什么改变?值得一提的是,我将嵌入式字体输入为类而不是字符串。我还经常需要在嵌入语句中设置fontStyle和fontWeight属性,以使它们正确嵌入。你是在呼叫Font.registerFont(Font)吗?那是很久以前的事了。我想我没有改变任何关于字体的事情。我试着注册,但它也没有改变任何事情。不错的尝试:)。[embed]标记中的:/fontName或fontFamily的文档非常差:这有关系吗?如果我将管理器行添加到编译器选项,它将返回一个错误:“找不到指定的文件”。这是非常棘手的:/在网络上做了所有其他事情之后,编译器标志终于为我解决了这个问题。