我已经完成了很多关于此的搜索,但还没有找到解决方案,我希望这里的董事会可以帮助我。从资源文件中嵌入的AS3字体不能正常工作
我已经建立了一个项目(使用单独的字体SWF向我的项目提供字体)。一旦加载,我使用Font.registerFont()将这些字体注册到全局字体目录。我的文本样式来自外部加载的样式表。
由于某些原因,我无法弄清楚,当我尝试创建textField并使用我的嵌入字体时,文本会从屏幕消失。如果在创建textField时,我将embedFonts设置为false,那么文本的大小和颜色的大小和颜色都会显示出来(如从样式表中获取),但显然使用默认的系统字体,我的自定义字体应该是。
我使用的代码如下:
TTWTextHelper.traceAvailableFonts();
TTWTextHelper.traceStyleSheet(myStyleSheet);
var myText = new TextField;
with (myText)
{
width = 250;
autoSize = TextFieldAutoSize.LEFT;
selectable = false;
antiAliasType = AntiAliasType.ADVANCED;
styleSheet = myStyleSheet;
embedFonts = true;
border = true;
multiline = true;
wordWrap = true;
htmlText = "<span class='body'>Test</body>";
}
myText.x = 300;
myText.y = 300;
addChild(myText);
我知道,(显然)我的字体作为内嵌当我运行TTWTextHelper.traceAvailableFonts()我得到列出的两种字体。
public static function traceAvailableFonts():void
{
/*
* See what fonts we have to play with
*/
var embeddedFonts:Array = Font.enumerateFonts(false);
embeddedFonts.sortOn("fontName", Array.CASEINSENSITIVE);
trace("how many fonts? " + embeddedFonts.length);
Tools.pr(embeddedFonts);
}
结果:
how many fonts? 2
(array) {
[0] => (object) [object MarkerFeltThinPlain]
[1] => (object) [object MarkerFeltWidePlain]
}
,我知道我的样式表被加载并正在正确地解析动作,当我运行TTWTextHelper.traceStyleSheet(myStyleSheet);我得到的样式了正确列出:
public static function traceStyleSheet(_styleSheet:StyleSheet):void
{
trace("Tracing StyleSheet: " + _styleSheet);
var styles:Array = _styleSheet.styleNames;
for each(var style : * in styles)
{
trace("Style Name: " + style);
var thisStyle:Object = _styleSheet.getStyle(style);
Tools.pr(thisStyle);
}
}
结果:
Tracing StyleSheet: [object StyleSheet]
Style Name: a
(object) {
[color] => (string) #ff0000
[leading] => (string) 2
[fontFamily] => (string) "MarkerFeltThin-Plain"
[fontSize] => (string) 15
[textAlign] => (string) left
}
Style Name: .title
(object) {
[color] => (string) #ff0000
[leading] => (string) 2
[fontFamily] => (string) "MarkerFeltWide-Plain"
[fontSize] => (string) 20
[textAlign] => (string) left
}
Style Name: .body
(object) {
[color] => (string) #4b4b4b
[leading] => (string) 2
[fontFamily] => (string) "MarkerFeltThin-Plain"
[fontSize] => (string) 15
[textAlign] => (string) left
}
任何意见非常感谢!谢谢!
我在这方面做了更多的工作......并遇到了一个非常普通的问题/解决方案......我在MAC CS5上工作,发布我的fonts.swf文件时我注意到了如果字体名称(不是链接或类名称,但是字体名称)在其标题中包含多个单词或标点符号,那么它在我的项目中不起作用。例如“Arial”或“Century”或“Hurculanum”的所有作品,其中“MarkerFeltThin-Plain”或“Stencil Std”或“Co Headline Bd”都没有。这两个列表中都有TrueType和OpenTypes的混合。这里是踢球者,我在PC CS3上创建相同的文件,一切正常。 – Tomtids 2010-11-09 11:52:59