【问题标题】:Embedded fonts still shown in iOS app, but disappeared in Android app嵌入字体仍然显示在 iOS 应用程序中,但在 Android 应用程序中消失了
【发布时间】:2016-07-26 12:34:52
【问题描述】:

有一个用 Apache Flex 编写的纸牌游戏,我正在努力保持它的活力,虽然 iOS version 仍然可以正常工作,但 Android app 出现了几个视觉问题:

  1. 卡片套装符号显示不正确(我的主要问题!)
  2. ActionBar 文本颜色有时为黑色
  3. BusyIndi​​cator 不再旋转

以下是演示我的问题的 Android 屏幕截图:

这是我完整的 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,但这无济于事:

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

这是我的应用程序正常运行时的旧照片:

【问题讨论】:

  • 当你说停止工作时......你的意思是从 Flex 4.6 回归到 4.15 吗?
  • 不,它也适用于 Flex 4.12 或 4.13。也许是安卓版本的变化——我没有旧版本的安卓手机了。通过提出这个问题,我希望有人会指出一些计划中的 Flex 更改,需要在我这边适应 CSS...

标签: android apache-flex fonts flex4 embedded-fonts


【解决方案1】:

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

随着 Apache Flex 4.14 的发布,我们引入了新的移动皮肤 针对 iOS7+ 和 Android 4+ 版本。无需更改代码即可 使用这些新皮肤。

但是:

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

-includes=mx.utils.LegacyMobileThemeOverride

【讨论】:

  • 谢谢。我已将我的 FlashBuilder 移动项目的“Flex 编译器”设置更改为 -includes=mx.utils.LegacyMobileThemeOverride -locale=ru_RU,en_US,de_DE -source-path=locale/{locale} -show-unused-type-selector-warnings=false,但不幸的是它既没有修复字体,也没有修复繁忙指示器。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-12-21
  • 2021-12-06
  • 1970-01-01
  • 1970-01-01
  • 2020-06-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多