Flash AS3字体/样式表显示不正确

时间:2011-03-11 18:27:42

标签: flash actionscript-3 fonts stylesheet embedding

无法弄明白为什么这不起作用。我在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>

任何人都知道我做错了什么?我已经坚持了太长时间了。

1 个答案:

答案 0 :(得分:2)

您使用的是嵌入字体,并且没有正确嵌入Gotham-Book字体。 Gotham-Bold是,这就是为什么只有带有.gbold的文本出现的原因。要测试这是否是问题,只需设置“embedFonts = false”,您就会看到文本显示。

对于字体嵌入问题,我不久前写了一篇很长的博客文章:http://divillysausages.com/blog/as3_font_embedding_masterclass

我必须使用Flex中的Stylesheets嵌入来更新它,但是应该有你需要的东西。至少,帖子底部有一些非常有用的链接可以满足您的需求。