Встроенные шрифты по-прежнему отображаются в приложении для 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


person Alexander Farber    schedule 26.07.2016    source источник
comment
Когда вы говорите, что перестал работать... вы имеете в виду регрессию с Flex 4.6 до 4.15?   -  person Clintm    schedule 26.07.2016
comment
Нет, это работало и с Flex 4.12 или 4.13. Возможно, это изменение версии Android - у меня больше нет Android-телефона с более старой версией. Задавая этот вопрос, я надеялся, что кто-нибудь укажет на некоторые запланированные изменения Flex, требующие адаптации в CSS с моей стороны...   -  person Alexander Farber    schedule 26.07.2016


Ответы (1)


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

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

Но:

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

-includes=mx.utils.LegacyMobileThemeOverride
person Clintm    schedule 26.07.2016
comment
Спасибо. Я изменил настройки компилятора Flex моего мобильного проекта FlashBuilder на -includes=mx.utils.LegacyMobileThemeOverride -locale=ru_RU,en_US,de_DE -source-path=locale/{locale} -show-unused-type-selector-warnings=false, но, к сожалению, это не исправило ни шрифт, ни индикатор занятости. - person Alexander Farber; 26.07.2016