Почему значения / метки оси диаграмм Flex не отображаются при использовании общих библиотек времени выполнения

Я разработал гибкое приложение с использованием компонентов визуализации данных. Сейчас я пытаюсь оптимизировать приложение, и один из подходов, которые я пытаюсь - это использовать Runtime Shared Libraries.

Я настроил Flex Builder для развертывания с совместно используемыми библиотеками времени выполнения и добавил файл.swz для библиотек инфраструктуры, datavisualization и rpc. После развертывания мое приложение загружается, однако значения моей оси в каждой из моих диаграмм отсутствуют. Сами оси показаны, однако у них нет отображаемых единиц меток. Сами серии тоже отображаются.

Я пробовал это с использованием 3.4 SDK, а также 3.2 SDK в Flex Builder. Я также попытался скомпилировать flex, используя задачи mxmlc ANT, и получил те же результаты.

Я удостоверился, что среда RSL загружается первой, и также удостоверился, что глобальный флэш-кэш был очищен перед тестированием.

Из журналов доступа видно, что файлы.swz загружаются при первом запросе приложения, поэтому я уверен, что правильно очистил глобальный кэш Flash Player.

Кто-нибудь знает, почему мои значения оси будут отсутствовать только при развертывании с RSL??? Переключаясь обратно в режим Merged, мое приложение работает нормально, и только когда я развертываюсь с RSL, я получаю проблему.

Я также попытался скомпилировать, используя только базовый RSL, а не RSL (datavisualization или rpc) (сохраняя их в объединенном режиме), и я получаю те же результаты, без значений осей.

Любая помощь приветствуется.

Благодарю.

1 ответ

У меня была такая же проблема с использованием 3.4.0.9271. После некоторых проб и ошибок я нашел хакерское решение. Я собираюсь открыть отчет об ошибке для этого. Вот несколько заметок и пример:

  1. Это происходит только в том случае, если ваша диаграмма использует встроенный шрифт. Насколько я могу судить, шрифты устройства в порядке.
  2. Как вы обнаружили, загрузка фреймворка rsl кажется виновной стороной.
  3. На этапе инициализации встроенные шрифты доступны приложению - отследите массив Font.enumerateFonts, чтобы увидеть его. Я был немного удивлен, что мои встроенные шрифты были доступны.
  4. Очевидно, что регистрация шрифтов делает свое дело
  5. Я не знаю, как это повлияет на время загрузки, конфликты шрифтов и т. Д.

Пример: зарегистрировать встроенный шрифт Lucida на этапе инициализации приложения

[Embed(source="/assets/fonts/Lucida Grande.ttf",fontName="LucidaGrandeEmbedded", fontStyle="normal")
private var myNormalLucida:Class;

private function onInitialize():void {
  Font.registerFont(myNormalLucida)
}
Другие вопросы по тегам