我使用以下代码将Arial嵌入到我的应用程序中:
[Embed(source='../assets/fonts/Arial.ttf',fontFamily='CustomFont',fontWeight='regular',
unicodeRange='U+0020-U+0040,U+0041-U+005A,U+005B-U+0060,U+0061-U+007A,U+007B-U+007E,U+0080-U+00FF,U+0100-U+017F,U+0400-U+04FF,U+0370-U+03FF,U+1E00-U+1EFF,U+2022,U+2219,U+20AC-U+21AC',
mimeType='application/x-font-truetype'
)]
public static var MY_FONT:Class;
[Embed(source='../assets/fonts/Arial Bold.ttf',fontFamily='CustomFont',fontWeight='bold',
unicodeRange='U+0020-U+0040,U+0041-U+005A,U+005B-U+0060,U+0061-U+007A,U+007B-U+007E,U+0080-U+00FF,U+0100-U+017F,U+0400-U+04FF,U+0370-U+03FF,U+1E00-U+1EFF,U+2022,U+2219,U+20AC-U+21AC',
mimeType='application/x-font-truetype'
)]
public static var MY_FONT_BOLD:Class;
[Embed(source='../assets/fonts/Arial Italic.ttf',fontFamily='CustomFont',fontWeight='regular',fontStyle="italic",
unicodeRange='U+0020-U+0040,U+0041-U+005A,U+005B-U+0060,U+0061-U+007A,U+007B-U+007E,U+0080-U+00FF,U+0100-U+017F,U+0400-U+04FF,U+0370-U+03FF,U+1E00-U+1EFF,U+2022,U+2219,U+20AC-U+21AC',
mimeType='application/x-font-truetype'
)]
public static var MY_FONT_ITALIC:Class;
[Embed(source='../assets/fonts/Arial Bold Italic.ttf',fontFamily='CustomFont',fontWeight='bold',fontStyle="italic",
unicodeRange='U+0020-U+0040,U+0041-U+005A,U+005B-U+0060,U+0061-U+007A,U+007B-U+007E,U+0080-U+00FF,U+0100-U+017F,U+0400-U+04FF,U+0370-U+03FF,U+1E00-U+1EFF,U+2022,U+2219,U+20AC-U+21AC',
mimeType='application/x-font-truetype'
)]
public static var MY_FONT_ITALIC_BOLD:Class;
[Embed(source='../assets/fonts/Arial Unicode.ttf',fontFamily='CustomFont',fontWeight='regular',
unicodeRange='U+0020-U+0040,U+0041-U+005A,U+005B-U+0060,U+0061-U+007A,U+007B-U+007E,U+0080-U+00FF,U+0100-U+017F,U+0400-U+04FF,U+0370-U+03FF,U+1E00-U+1EFF,U+2022,U+2219,U+20AC-U+21AC',
mimeType='application/x-font-truetype'
)]
public static var MY_FONT_UNICODE:Class;
它适用于外国字符,但没有特殊字符(版权,商标,欧元符号等)正常工作。有人可以帮忙吗?我检查了我的unicode范围,它们应该可以正常工作!
答案 0 :(得分:2)
如果你没有指定unicode范围,那么就会出现这些字符(我不建议以这种方式启动,仅用于测试)。如果它们没有嵌入完整字体,可能您的字体版本不包含字符。 Arial Unicode应至少包含版权,它的代码是U + 00A9,我认为它包含在您的范围内,但您可以尝试明确地包含该数字,即添加:U + 00A9-U + 00A9。
您可能会发现此AIR应用程序可用于确定unicode范围:http://undefined-type.com/tag/unicode/
答案 1 :(得分:0)
我建议使用外部库来表示字体esp。考虑到它们的重量,如果嵌入了unicode字符。有一个相当简单的AS3脚本来嵌入系统字体,例如影响:
package {
import flash.display.Sprite;
public class Impact extends Sprite {
[Embed(systemFont='Impact', fontName='Impact', mimeType='application/x-font')]
public static var Impact:Class;
}
}
您可以从http://tekkie.flashbit.net/flash/as/embed-system-fonts-with-flex-sdk
获取上述* .as