本以为要放弃Flex了 结果项目需要又要回到Flex,为了界面好看使用了自定义字体,结果报错 warning: incompatible embedded font 'WRYH' specified for mx.controls::Alert (Alert36) . This component requires that the embedded font be declared with embedAsCFF=false.
找了很多资料,都没解决我的问题, 最后通过 某个E国人的博文中找了问题所在,同时参考了Adobe 关于CFF的说明之后才恍然大雾
Flex 4.x 中 mx 与spark 是有很大的区别
因此spark中用了自定义字体后,不能用于mx中,因此需要将embedAsCFF设置为false;
所以为了解决这个问题,需要将一个字体申明两次(内存加倍)
@namespace s "library://ns.adobe.com/flex/spark";
@namespace mx "library://ns.adobe.com/flex/mx";
@namespace ml "com.maiyoule.exam.layout.*";
@font-face{
fontFamily:"WRYH";
src:url("../fonts/msyh.ttf");
embedAsCFF: true;
}
@font-face{
fontFamily:"WRYH_CLOSE"; /* <== 重新声明一个别名 */
src:url("../fonts/msyh.ttf");
embedAsCFF: false; /* <===设置为False 用于mx组件 */
}
s|Application{
fontFamily:"WRYH";
}
mx|Alert{
fontFamily:"WRYH_CLOSE"; /* <==设置新申明的别名 */
}