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

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

Я настроил 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 Ответ

1 голос
/ 19 ноября 2009

У меня была такая же проблема при использовании 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)
}
...