【发布时间】:2011-12-30 09:10:27
【问题描述】:
在 Firefox 和 Chrome 浏览器中打印 Flash 内容存在一个众所周知的问题。因此,一个 solution 是由“AnyCharts”创建的。但它似乎不起作用。我也尝试实现 the latest version of the component 即现在托管和谷歌代码。我完全按照手册的规定做了,但它仍然不起作用。AnyChart 的人在他们的博客页面上说,也应该用 CSS 做一些事情,但你可以从 Flash-Print-Fix 的手册中看到主页,没有提到CSS设置。
我的代码是这样工作的:
在 HTML 中,我连接了 Flash_Print-Fix 提供的 JavaScript 类:
<script type="text/javascript" src="lib/FlashPrintFix.js"></script>
在 Flex App 中,我将此行放在图表系列的 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 对象。不知何故,仍然不明白为什么,如果我使用可用的 JQuery 插件之一嵌入 Flash ExternalInterface.objectID 是empty.So 解决方法是在 Utility 的 JS 类中硬输入 Flash Object id: FlashPrintFix.js 内部:
FlashPrintFix.setImg = function(objId, imgData) {
var obj = document.getElementById(yourFlashObjectID");
...
.....
【问题讨论】:
标签: flash apache-flex firefox printing