无法在flex 4.6中将字体系列样式设置为spark按钮

时间:2012-02-28 15:14:41

标签: flex flex4.5

我创建了一个样式,我在其中定义了一个字体系列。当我将这个样式应用于标签时,它反映了字体,因为当它应用于spark按钮时没有变化。我尝试了各种方式来应用字体风格,但它不起作用。其他属性工作正常,除了字体系列。即使我尝试创建皮肤类并在其中设置标签的字体系列样式。在预览皮肤时,我可以看到更改但是当我将其应用于按钮时,它会显示默认字体。下面给出的代码是用View编写的。我遵循了2种方法,但都没有。

方法1

@font-face{
src:url("HARNGTON.TTF");
fontFamily: MyF;
embed-as-cff: false;
}

<s:Button x="143" y="108" width>="471" label="Course" color="white" fontFamily="MyF"
>

方法2

我创建了一个样式,我也使用了按钮的皮肤类。我没有在皮肤类中定义字体系列。所以我希望按钮不会覆盖皮肤类的字体系列,即默认值。

@font-face{
src:url("HARNGTON.TTF");
fontFamily: MyF;
embed-as-cff: false;
}
.myFont
{
fontFamily: MyF;
}

<s:Button x="143" y="108" width="471" label="Course" color="white" styleName=myFont skinclass="MyButton_skin">

我也尝试过使用CSS文件,但它仍然无效。 CSS文件的示例如下:

/ * CSS文件* /

@namespace s "library://ns.adobe.com/flex/spark";

@font-face{
    src:url("/views/abc.ttf");
    fontFamily: MyF;
    fontWeight:bold;
    embed-as-cff: false;
}

s|Button {
    fontFamily: MyF;
    color: #000000;
    fontSize: 34;
}

我在视图初始化期间使用它

public function init():void{
                styleManager.loadStyleDeclarations("Basic.swf",true);
            }

但字体样式仍然没有变化。

3 个答案:

答案 0 :(得分:2)

这通常是因为您嵌入了normal重量的字体。按钮使用bold标签。如果您正常嵌入字体并将其用作粗体,则无法正确呈现。

除非您指定嵌入字体是粗体(在font-family声明中,将font-weight属性设置为bold),否则它不会添加到按钮标签。

查看您发布的代码后,很明显font-family声明并未定义嵌入字体的权重,因此Flex假定它设置为normal。这就是为什么你没有看到带有嵌入字体的标签的原因。

答案 1 :(得分:0)

将字体与Spark组件一起使用时,应将embedAsCFF设置为true而不是false。在传统mx组件中嵌入字体时使用False。

答案 2 :(得分:0)

像素4nickels是对的,首先你需要设置embedAsCFF:true,其次,我不认为embed-as-cff不是正确的格式,应该是embedAsCFF