Существует широко известная проблема с печатью содержимого Flash в браузерах Firefox и Chrome. Итак, одно решение было создано "AnyCharts". Но, похоже, оно не работает. Я также пытался реализовать последняя версия компонента , который теперь размещен и Google Code. Я сделал точно так, как предписывает руководство, но он все еще не работает. Ребята из AnyChart на своей странице блога говорят, что что-то должно быть сделано и с CSS , но, как видно из руководства на домашней странице Flash-Print-Fix , в настройках CSS нет упоминаний.
Мой код работает так:
В HTML я подключаю класс JavaScript, поставляемый с Flash_Print-Fix:
<script type="text/javascript" src="lib/FlashPrintFix.js"></script>
В приложении Flex я поместил эту строку в обработчик FlexEvent.UPDATE_COMPLETE для серии диаграмм:
private function onLineComplete(e:Event):void{
FlashPrintFix.initializeApp();
}
Не работает. Предварительный просмотр печати все еще пуст.
У кого-нибудь есть подробное объяснение настройки, как решить эту проблему?
Спасибо.
Обновление:
После некоторых более глубоких исследований я обнаружил проблему. Дело в том, что внутри утилиты Flex FlashPrintFix критически важна следующая строка:
ExternalInterface.call("FlashPrintFix.setImg", ExternalInterface.objectID, _base64encoder.toString());
Параметр ExternalInterface.objectID должен быть установлен, в противном случае сторона JS утилиты не найдет объект Flash. По-прежнему не понимаю, почему, если я внедряю Flash, используя один из доступных плагинов JQuery, внешний empty.So обходной путь заключается в том, чтобы жестко набрать идентификатор объекта Flash в классе JS утилиты:
Внутри FlashPrintFix.js:
FlashPrintFix.setImg = function(objId, imgData) {
var obj = document.getElementById(yourFlashObjectID");
...
.....