嵌入式字体仍显示在iOS应用中,但在Android应用中消失了

时间:2016-07-26 12:34:53

标签: android flex fonts flex4 embedded-fonts

有一个用Apache Flex编写的纸牌游戏,我试图保持活力,而iOS version仍然有效,Android app已经产生了一些视觉问题:

  1. 卡套装符号显示不正确(我的主要问题!)
  2. ActionBar文字颜色有时是黑色
  3. BusyIndi​​cator不再旋转
  4. 以下是Android屏幕截图,展示了我的问题:

    screenshot 1

    screenshot 2

    这是我完整的CSS文件:

    @namespace s "library://ns.adobe.com/flex/spark";
    @namespace mx "library://ns.adobe.com/flex/mx";
    
    s|ActionBar {
        chromeColor: #0066CC;
        color: #FFFFFF;   /* BUT WHY IS IT BLACK SOMETIMES? */
        titleAlign: center;
        textShadowColor: #000000;
        fontFamily: embFont;
    }
    
    @font-face { 
        src: url("/assets/fonts/arial.ttf"); 
        fontFamily: embFont;
        embedAsCFF: false; /* required for StyleableTextField */
        unicodeRange:
            U+0020-U+0040, /* Punctuation, Numbers */
            U+2660-U+2666, /* Card suits - BUT THEY STOPPED WORKING */
            U+0041-U+005A, /* Upper-Case A-Z */
            U+0061-U+007A, /* Lower-Case a-z */
            U+0410-U+0451; /* Cyrillic */   
    }
    
    s|LabelItemRenderer {
        fontFamily: embFont;
    }
    

    以下是MXML代码的摘录,显示卡套装和忙碌指示器:

    <s:titleContent>
        <s:Label id="_titleTxt" 
                 fontWeight="bold" 
                 color="#FFFFFF" 
                 width="100%" />
    
        <s:BusyIndicator id="_busy" 
                         includeInLayout="false"
                         visible="false" />
    </s:titleContent>
    
    <s:actionContent>
        <s:CalloutButton id="_leftBtn"
                         icon="{VIP}"
                         verticalPosition="after"
                         includeInLayout="false"
                         visible="false">
            <s:VGroup width="100%">
                <s:Label id="_left0" fontSize="{Preferans.FONT_SIZE}" />            
                <s:Label id="_left1" fontSize="{Preferans.FONT_SIZE}" color="#FF0000" />            
                <s:Label id="_left2" fontSize="{Preferans.FONT_SIZE}" />            
                <s:Label id="_left3" fontSize="{Preferans.FONT_SIZE}" color="#FF0000" />
            </s:VGroup>
        </s:CalloutButton>
    ...
    </s:actionContent>
    

    专门为Label添加以下CSS代码无济于事:

    s|Label {
        fontFamily: embFont;
    }
    

    此外,我还在每个新的Apache Flex版本中继续安装和重新编译我的应用程序,并确保我不会忘记安装可选的flex-fontkit.jar,但这没有帮助:

    screenshot 3

    screenshot 4

    请帮助,Apache Flex 4在过去几年中发生了什么变化,它已经破坏了我的Android应用程序?

    这是我的应用程序的旧图片,当它正常工作时:

    screenshot 5

1 个答案:

答案 0 :(得分:2)

也许这个? https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=50856172

  

随着Apache Flex 4.14的发布,我们推出了新的移动设备外观   定位iOS7 +和Android 4+版本。无需更改代码   使用这些新皮肤。

可是:

  

如果您想继续使用旧的旧版移动主题/皮肤,请添加此编译器指令:

-includes=mx.utils.LegacyMobileThemeOverride