刚开始的时候,认为Flex4绑定字体做的很优雅,不过在绑定字体到TextFiled上面的时候就出了问题。字体没有能正常的显示出来
究其原因是由于Flex4采用了一种新的文字渲染方式,在默认绑定方式下,对Flex3中Text类型不在予以支持。
可以在Adobe的官网上找到相应的证实 ,在文章结尾说改动已经列入Flex4 SDK的开发计划中了。
不过就目前而言 暂时只能采取其建议的替代方式
MXML语言:
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/halo"
minWidth="100"
minHeight="100"
width="168"
height="209"
initialize="application1_initializeHandler(event)">
<fx:Script>
<![CDATA[
import mx.core.UIComponent;
import mx.events.FlexEvent;
private var parentUIComponent:UIComponent
private var textFiled:TextField
protected function application1_initializeHandler(event:FlexEvent):void
{
parentUIComponent=new UIComponent();
this.addElement(parentUIComponent);
parentUIComponent.x=30;
parentUIComponent.y=100;
textFiled=new TextField();
textFiled.text="Tunied";
/*
对当前的TextFiled指定
1· 使用字体绑定
2·设置绑定字体为 baroqueScript_TextFiled
*/
textFiled.embedFonts=true;
var sFormat:TextFormat=textFiled.getTextFormat();
sFormat.font="baroqueScript_TextFiled";
textFiled.defaultTextFormat=sFormat;
textFiled.setTextFormat(sFormat);
parentUIComponent.addChild(textFiled);
}
]]>
</fx:Script>
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<fx:Style>
@namespace s "library://ns.adobe.com/flex/spark";
@namespace mx "library://ns.adobe.com/flex/halo";
@font-face{
src : url(../libs/font/BaroqueScript.ttf);
font-family : "baroqueScript"
}
@font-face{
src : url(../libs/font/BaroqueScript.ttf);
font-family : "baroqueScript_TextFiled";
embedAsCFF: false;
}
</fx:Style>
<s:Button x="10"
y="39"
label="Tunied"
fontFamily="baroqueScript"
width="135"
height="50"/>
<s:Button x="41"
y="10"
label="Tunied"/>
</s:Application>
在代码绑定字体时候选择 embedAsCFF: false; 这样所绑定的字体可以用于早期的Text渲染。
注:如果程序不但有Flex4控件,而且还有Flex3控件的话。(或者像我一样,在程序中需要使用TextFiled)则需要对同一份字体绑定两次。这样会增加程序的大小。
参考资料
1· http://www.allmas-tn.com/2008111710/gumbo-using-embedded-fonts-with-the-new-text-primitives.html
2· http://blog.flexexamples.com/2008/10/15/embedding-fonts-in-flex-gumbo/
3· http://www.adobe.com/devnet/flex/articles/flex3and4_differences_06.html
4· http://www.adobe.com/devnet/flex/articles/flex3and4_differences_06.html
分享到:
相关推荐
tomcat-embed-core-8.5.23.jar
tomcat-embed-core-9.0.16
tomcat-embed-core-9.0.27
tomcat-embed-websocket-9.0.16.jar
tomcat-embed-jasper-9.0.16.jar
tomcat-embed-core-8.5.15.jar
tomcat-embed-el-8.5.15.jar
tomcat-embed-el-9.0.16.jar
tomcat-embed-websocket-8.5.15.jar
官方离线安装包,亲测可用。使用rpm -ivh [rpm完整包名] 进行安装
官方离线安装包,亲测可用。使用rpm -ivh [rpm完整包名] 进行安装
tomcat-embed-jasper-7.0.50 jar包
tomcat-embed-websocket-8.0.35.jar,经过测试,可以使用。
Python 3.12.0-embed-amd64.zip 是一个针对64位Windows系统的Python轻量级打包文件,它包含了一些基本的Python运行时组件,使得开发者可以在不安装完整Python环境的情况下运行Python程序。这个压缩包尤其适用于那些...
Python 3.11.0-embed-amd64.zip 是一个针对AMD64架构的Python 3.11.0精简版发行包,它包含了一组核心库和运行时支持文件,允许用户在不安装完整Python环境的情况下运行Python程序。这个压缩包特别适合那些需要在没有...
本教程“adobe-pdf-embed-tutorial-node”聚焦于如何利用JavaScript技术来实现这一功能,特别是在Node.js环境中。下面我们将深入探讨这个主题。 首先,Adobe PDF Embed API是一个客户端库,它可以将高质量的PDF预览...
tomcat-embed-websocket-9.0.27
tomcat-embed-el-9.0.27
针对Windows 64位系统的用户,Python 3.6.8 提供了一个名为"python-3.6.8-embed-amd64.zip"的压缩包,它是一个轻量级的可执行环境,无需安装,无任何依赖,解压后即可直接运行Python程序,非常适合快速部署和测试。...