6

我嵌入了一些字体并在我的移动应用程序中使用它们,它们都在工作,除了我尝试用于“ActionBar”的字体。他们在其他任何地方都可以使用,并将其替换"Comic Sans MS""titleCGF"Comic Sans。那么为什么它不能与我的自定义 fontFamily 一起使用呢?

    <fx:Style>
        @namespace s "library://ns.adobe.com/flex/spark";
        @font-face {
            src: url("assets/Comic_Book.ttf");
            fontFamily: comic;
            embedAsCFF: false;
        }
/******************************
        @font-face{
            src: url("assets/CGF_Locust_Resistance.ttf");
            fontFamily: titleCGF;
            embedAsCFF: false;
        }
        @font-face{
            src: url("assets/CGF_Locust_Resistance.ttf");
            fontFamily: titleCGF;
            embedAsCFF: true;
        }
**********************************/
        .titleStyle{
            fontFamily: titleCGF;
            color: #FFFFFF;
        }
        .comicMessage{
            fontFamily: titleCGF;
            color: #838689;
            fontSize: 14;
        }
        s|IconItemRenderer{
            fontFamily: comic;
            color: #FEBA03;
            fontSize:18;
        }
        s|ActionBar{
            defaultButtonAppearance: beveled;
            accentColor: #FEBA03;
        }
        s|ActionBar #titleDisplay{
            fontFamily: "titleCGF";

        }
    </fx:Style>

这就是我得到的:

字体视图

编辑:我尝试制作自己的皮肤,部分预先编写的代码是这样的:

<!-- SkinParts
name=titleGroup, type=spark.components.Group, required=false
name=actionGroup, type=spark.components.Group, required=false
name=navigationGroup, type=spark.components.Group, required=false
name=titleDisplay, type=spark.core.IDisplayText, required=false
-->

当我尝试定义前三个之类的东西时<s:Group .../>,它工作正常。但是 spark.core.IDisplayText 没有任何显示。即,<s:IDisplayText .../>没有任何结果...

4

6 回答 6

8

这是嵌入字体两次的示例,一次使用 embedAsCFF=false,再次使用 embedAsCFF=true。在http://blogs.adobe.com/jasonsj/2011/08/embedding-fonts-in-flex-mobile-projects.html查看完整说明。

编辑1:固定字体文件名

/* StyleableTextField, regular */
@font-face {
    src: url("assets/COMIC.TTF");
    fontFamily: "comic";
    embedAsCFF: false;
}

/* StyleableTextField, bold */
@font-face {
    src: url("assets/COMICBD.TTF");
    fontFamily: "comic";
    fontWeight: bold;
    embedAsCFF: false;
}

/* Label, regular */
@font-face {
    src: url("assets/COMIC.TTF");
    fontFamily: "comicCFF";
    embedAsCFF: true;
}

/* Label, bold */
@font-face {
    src: url("assets/COMICBD.TTF");
    fontFamily: "comicCFF";
    fontWeight: bold;
    embedAsCFF: true;
}

s|Label
{
    fontFamily: "comicCFF";
}

s|ActionBar
{
    fontFamily: "comic";
}

s|LabelItemRenderer
{
    fontFamily: "comic";
}
于 2011-08-23T17:41:48.693 回答
2

我对 flex4 中的 mx buton 有同样的问题,我所做的是在两个地方都提到字体粗体为粗体。然后它开始工作了。

<fx:Style>

@font-face
        { 
            src: url("assets/fonts/Quasari1.ttf");
            fontFamily: msd;
            embedAsCFF: true; 
            fontWeight : bold;

        }
mx|Button{   
            fontFamily: msd;
            fontSize:22;
            color: red;
            fontWeight : bold;
            textFieldClass: ClassReference("mx.core.UIFTETextField"); 
        } 
</fx:Style>
<mx:Button label="submit" >
于 2012-01-16T10:36:56.083 回答
0

我知道 Flex 3 上的 Button 有这个问题,因为它的默认字体是粗体,很多人没有想到要嵌入粗体版本的字体。是否有可能默认操作栏移动皮肤使用粗体/斜体/其他东西,并且您需要制作自己的皮肤或嵌入两者?

===========下面有新东西===============

我还没有在这台机器上安装 FB 4.5,但我认为你可以在包资源管理器中右键单击并选择 New>Mobile As3 skin(或类似的文字)。该对话框将询问您要选择哪个组件,您应该浏览操作栏。我还没有这样做(因为我还不需要移动开发),但它可能会创建一个 as3 文件,其中包含您开始所需的大部分内容。

您可能会在 updateDisplayList 中找到需要编辑的代码,它将引用 titleDisplay。

HTH;

艾米

于 2011-07-20T18:47:14.463 回答
0

使用 embedAsCFF 嵌入字体的单独副本:true;并将其应用于皮肤中的标签,它会起作用。我不记得它的原因(截止日期=wtfever),但我知道这为我解决了这个确切的问题。

真实的故事。=)

Ps 确保粗体/斜体在样式中也是正确的。

于 2011-07-23T00:11:56.547 回答
0

尝试将此添加到 ActionBar 标记中,以删除粗体样式:

creationComplete="event.currentTarget.titleDisplay.setStyle('fontWeight', 'normal')"

如果可行,那么您可以尝试更好的解决方案,例如扩展 ActionBar 类,或者也以粗体样式嵌入字体。

于 2011-07-29T01:42:03.250 回答
0

这是我用来为移动应用程序设置样式的样式表(操作栏、文本区域、按钮和标签)。它是从博客和论坛帖子中编译的。

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

@font-face
{ 
    src: url("styles/acmesab.TTF"); 
    fontFamily: comicStrip; 
    embedAsCFF: false; 
}

@font-face
{ 
    src: url("styles/acmesab.TTF"); 
    fontFamily: comicStrip2; 
    embedAsCFF: true; 
}

s|ActionBar
{
    chromeColor: #EEEEEE;
    titleAlign: center;
    defaultButtonAppearance: beveled;
}

s|ActionBar #titleDisplay
{
    fontFamily: comicStrip;
    fontWeight: normal;
    color: #000000;
    textShadowColor: #FFFFFF;
}

s|ActionBar.beveled s|Group#actionGroup s|Button 
{
    fontFamily: comicStrip;
    fontWeight: normal;
    color: #000000;
    textShadowColor: #FFFFFF;
}

s|ActionBar.beveled s|Group#navigationGroup s|Button 
{
    fontFamily: comicStrip;
    fontWeight: normal;
    color: #000000;
    textShadowColor: #FFFFFF;
}

.textArea
{
    fontFamily: comicStrip;
    fontSize: 14;
    skinClass: ClassReference("spark.skins.mobile.TextAreaSkin");
}

.button
{
    fontFamily: comicStrip;
    fontSize: 14;
    fontWeight: normal;
    skinClass: ClassReference("spark.skins.mobile.ButtonSkin");
}

.label
{
    fontFamily: comicStrip2;
    fontSize: 14;
    fontWeight: normal;
}
于 2012-04-21T20:21:21.133 回答