使用浏览器打印在Firefox中打印Flex 4应用程序

时间:2011-11-16 12:01:44

标签: flash flex firefox printing

在Firefox和Chrome浏览器中打印Flash内容存在一个众所周知的问题。因此,一个solution是由“AnyCharts”创建的。但它似乎无法工作。我也试图实现{{3现在托管和谷歌Code.I完全按照手册规定,但它仍然不起作用.AnyChart的家伙在他们的博客页面上说,应该用CSS做一些事情,但正如你从手册中看到的那样在the latest version of the component主页上,没有提及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();
    }

它不起作用.Print Preview仍为空。

任何人都有如何解决此问题的详细设置说明? 感谢。

更新: 经过深入研究后,我发现了问题。事实是,在Flex FlashPrintFix实用程序中,以下行是关键问题:

 ExternalInterface.call("FlashPrintFix.setImg", ExternalInterface.objectID,    _base64encoder.toString());

必须设置ExternalInterface.objectID参数,否则实用程序的JS端将找不到Flash对象。有些人,仍然不明白为什么,如果我使用可用的JQuery插件之一嵌入Flash,则ExternalInterface.objectID是所以解决方法是在实用程序的JS类中硬键入Flash Object id: 在FlashPrintFix.js中:

FlashPrintFix.setImg = function(objId, imgData) {
   var obj = document.getElementById(yourFlashObjectID");
 ...
 .....

1 个答案:

答案 0 :(得分:2)

发布更多代码以提供帮助。

该链接中的代码示例对我来说很好。预览就像应用程序一样。 它创建了Image并将其放在flash内容下面的html中,如

Print Flash

检查你离开的地方。

1)使用调试器检查它是否被初始化。

2)如果你得到下面的图像,那么它将显示预览。