Почему значения / метки оси диаграмм 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. После некоторых проб и ошибок я нашел хакерское решение. Я собираюсь открыть отчет об ошибке для этого. Вот несколько заметок и пример:
- Это происходит только в том случае, если ваша диаграмма использует встроенный шрифт. Насколько я могу судить, шрифты устройства в порядке.
- Как вы обнаружили, загрузка фреймворка rsl кажется виновной стороной.
- На этапе инициализации встроенные шрифты доступны приложению - отследите массив Font.enumerateFonts, чтобы увидеть его. Я был немного удивлен, что мои встроенные шрифты были доступны.
- Очевидно, что регистрация шрифтов делает свое дело
- Я не знаю, как это повлияет на время загрузки, конфликты шрифтов и т. Д.
Пример: зарегистрировать встроенный шрифт Lucida на этапе инициализации приложения
[Embed(source="/assets/fonts/Lucida Grande.ttf",fontName="LucidaGrandeEmbedded", fontStyle="normal")
private var myNormalLucida:Class;
private function onInitialize():void {
Font.registerFont(myNormalLucida)
}