无法弄明白为什么这不起作用。我在flash中创建了一个swf,其中包含一个我想在单独的swf中与样式表一起使用的字体。样式表和字体在另一个静态放置在舞台上的文本字段中工作正常。但是,当我尝试在舞台上动态放置文本字段时,它不起作用。唯一显示的是带有.gbold类的跨度的文本。
这是我的代码:
function vidLoaded (e:LoaderEvent){
var vidText:TextField = new TextField();
vidText.autoSize = TextFieldAutoSize.LEFT;
vidText.x = textX;
vidText.y = textY;
vidText.multiline = true;
vidText.wordWrap = true;
vidText.width = fieldWidth;
vidText.height = fieldHeight;
vidText.textColor = 0xFFFFFF;
vidText.styleSheet = textStyleSheet;
vidText.htmlText = project_array[cp].project_content;
trace (vidText.htmlText);
vidText.embedFonts = true;
container.fileHolder.addChildAt(vid,0);
container.fileHolder.addChildAt(vidText,1);
}
vidText.htmlText的跟踪确认所有内容都正确包装在CDATA标记中,并且看起来格式正确。这是我的样式表:
* { font-family:Gotham-Book; color: #ffffff; }
.gbold {font-family:Gotham-Bold;}
html, body { height:100%; background-color: #ffffff;}
body { margin:0; padding:0; overflow:hidden; text-align:center;}
#flashContent { width:100%; height:100%; }
这里有一段vidText.htmlText:
<div class="content"><p>
<span class="gbold">Lorem ipsum dolor sit amet</span>, consectetur adipiscing elit. Proin venenatis lorem et lorem dapibus eu porta est ornare.</p>
</div>
任何人都知道我做错了什么?我已经坚持了太长时间了。
答案 0 :(得分:2)
您使用的是嵌入字体,并且没有正确嵌入Gotham-Book字体。 Gotham-Bold是,这就是为什么只有带有.gbold的文本出现的原因。要测试这是否是问题,只需设置“embedFonts = false”,您就会看到文本显示。
对于字体嵌入问题,我不久前写了一篇很长的博客文章:http://divillysausages.com/blog/as3_font_embedding_masterclass
我必须使用Flex中的Stylesheets嵌入来更新它,但是应该有你需要的东西。至少,帖子底部有一些非常有用的链接可以满足您的需求。