Встроенные шрифты все еще отображаются в приложении iOS, но исчезают в приложении Android

Существует карточная игра, написанная на Apache Flex, которую я пытаюсь сохранить в живых, и хотя версия для iOS все еще работает нормально, в приложении для Android появилось несколько визуальных проблем:

  1. Символы масти карт не отображаются правильно (моя главная проблема!)
  2. Цвет текста ActionBar иногда черный
  3. BusyIndicator больше не вращается

Вот Android-скриншоты, демонстрирующие мою проблему:

скриншот 1

скриншот 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>

Добавление следующего кода CSS специально для Label не помогает:

s|Label {
    fontFamily: embFont;
}

Кроме того, я продолжаю устанавливать и перекомпилировать свое приложение с каждым новым выпуском Apache Flex и следить за тем, чтобы не забыть установить опциональный flex-fontkit.jar, но это не помогает:

скриншот 3

скриншот 4

Пожалуйста, помогите, что изменилось в Apache Flex 4 за последние несколько лет, когда оно сломало мое приложение для Android?

Вот старая фотография моего приложения, когда оно работало правильно:

скриншот 5

1 ответ

Может быть, это? https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=50856172

С выпуском Apache Flex 4.14 мы представили новые мобильные скины для версий iOS7+ и Android 4+. Для использования этих новых скинов не требуется никаких изменений кода.

Но:

Если вы хотите продолжить использовать старую мобильную тему / темы оформления, добавьте следующую директиву компилятора:

-includes=mx.utils.LegacyMobileThemeOverride
Другие вопросы по тегам