本文主要讨论、描述了使用Adobe公司的Flex与FlashPaper产品完成对发布到网上的文档资料进行只读控制,也就是说只允许浏览操作、对下载、打印进行控制。


FlashPaper

FlashPaper是Macromedia的一款用于将操作系统所识别的文档的内容通过虚拟打印机制将内容转换为swf文件的工具,

Flex

Flex是Adobe公司的一款推动RIA应用的技术,它可以使我们通过编码MXML方式产生swf,它的基础是ActionScript,ActionScript可以理解为别一门编程语言。

Flash

Flash cs3之前的版本与Flex的通信比较麻烦,但Flash CS3 之后使用的AS3与Flex就很好用了。

总体思路

1、用Flash开发一个加载器,它接收动态传递的相应swf文件地址实现swf文件的动态加载,Flash使用FlashPaper提供的API,对FlashPaper转换成的swf文件进行控制,如展示工具栏、隐藏打印按钮等
2、使用Flex动态传递相应参数给Flash做的加载器,完成swf文档的加载。
3、Flex与JavaScript通信,做为入口接收来自JavaScript的调用

一、使用Flash开发加载器

至于如何使用Flash可以搜索一些资料下载来看看。看懂并能使用AS写的一些基础的东西并没有太大障碍(主要是不用深入,会用就可以),你完全可以像读Java代码的方式读它。

开发过程

二、Flex与Flash加载器的连接

  • 使用SWFLoader加载由第一阶段完成的Flash加载器,并传递一些参数给加载器。如使用FlashPaper工具导出的swf文件地址。
  • 注意参数传递方式,这里我使用LocalConnection的方式,因为我们需求上只是使用Flash防止文件不被下载,并且不存在接收用户方与之交互动态加载相应swf,所以实现起来比较容易。
  • 下载Demo

回页首

三、JavaScript与Flex

    • 如果没有特殊要求非得使用Flex,可以尝试直接使用Flash开发的加载器加载相应swf文件

这块描述了下,javaScript调用Flex swf提供的外部接口,需要注意的是与这块对应的js中有一段setInterval(fname,50),主要是因为在加载完swf文件至swf绑定一个外部接口这段时间。js可以检索到swf对象实例,但该实例对外提供的接口也就是ExternalInterface.addCall(#,#)也许还未完成绑定。以上并未有任何明确的示例,这是我在集成到我们产品上时出现的问题,我们就想到了轮循检测解决的办法。

四、在Java中使用FlashPaper

多种调用办法

1、批处理方式执行。编写批处理脚本,使用Java调用批处理脚本。
2、使用Java创建一FlashPaper进程,

注意细节

1、守护线程问题
2、环境变量问题
请仔细看一下FileConvert4SwfImpl.java

基于FlashPaper的文档播放器的更多相关文章

  1. 数据库表结构文档查看器 基于netcore

    前言 日常开发业务代码,新接手一块不熟悉的业务时需要频繁的查看对应业务的数据库表设计文档.相比于直接翻看业务代码,有必要提供一个数据库表结构文档查看器来解决这些繁琐的问题. CML.SqlDoc CM ...

  2. lucene全文搜索之四:创建索引搜索器、6种文档搜索器实现以及搜索结果分析(结合IKAnalyzer分词器的搜索器)基于lucene5.5.3

    前言: 前面几章已经很详细的讲解了如何创建索引器对索引进行增删查(没有更新操作).如何管理索引目录以及如何使用分词器,上一章讲解了如何生成索引字段和创建索引文档,并把创建的索引文档保存到索引目录,到这 ...

  3. 基于Live555,ffmpeg的RTSP播放器直播与点播

    基于Live555,ffmpeg的RTSP播放器直播与点播 多路RTSP高清视频播放器下载地址:http://download.csdn.net/detail/u011352914/6604437多路 ...

  4. CentOS6.4下使用默认的文档查看器打开PDF文档乱码的解决方案

     最近在CentOS6.4下使用其默认的文档查看器打开PDF文档时出现乱码的方块,有两种方法可以解决.    方法一:修改/etc/fonts/conf.d/49-sansserif.conf文件,如 ...

  5. 最简单的基于FFMPEG+SDL的音频播放器 ver2 (采用SDL2.0)

    ===================================================== 最简单的基于FFmpeg的音频播放器系列文章列表: <最简单的基于FFMPEG+SDL ...

  6. 基于jQuery仿QQ音乐播放器网页版代码

    基于jQuery仿QQ音乐播放器网页版代码是一款黑色样式风格的网页QQ音乐播放器样式代码.效果图如下: 在线预览   源码下载 实现的代码. html代码: <div class="m ...

  7. excel保存时出现“请注意,您的文档的部分内容可能包含了文档检查器无法删除的个人信息”

    这个问题的原因是由于工作簿包含宏.ActiveX控件等内容, 而Excel被设置为在保存文件时自动删除文件属性中的个人信息,因而出现该对话框.如果要避免出现这个提示,可进行如下设置: Excel 20 ...

  8. 最简单的基于FFMPEG+SDL的音频播放器 ver2 (採用SDL2.0)

    ===================================================== 最简单的基于FFmpeg的音频播放器系列文章列表: <最简单的基于FFMPEG+SDL ...

  9. iOS之基于FreeStreamer的简单音乐播放器(模仿QQ音乐)

    代码地址如下:http://www.demodashi.com/demo/11944.html 天道酬勤 前言 作为一名iOS开发者,每当使用APP的时候,总难免会情不自禁的去想想,这个怎么做的?该怎 ...

随机推荐

  1. Android的IPC机制(一)——AIDL的使用

    综述 IPC(interprocess communication)是指进程间通信,也就是在两个进程间进行数据交互.不同的操作系统都有他们自己的一套IPC机制.例如在Linux操作系统中可以通过管道. ...

  2. 一种Javascript解释ajax返回的json的好方法

    通常ajax请求返回的格式为json或者xml,如果返回的是json,则可以通过转换成javascript对象进行操作,如下: 1.ajax请求的controller实现 @RequestMappin ...

  3. 利用命令控制台cmd进入某个硬盘的某个文件夹的命令是什么?

    在命令行窗口中输入F:后回车就可以切换到F盘,如果想查看F盘的内容,可以再输入dir后回车 (输入“F”后要再输入一个“ :”再回车才行哦)

  4. How do I list all tables/indices contained in an SQLite database

    How do I list all tables/indices contained in an SQLite database If you are running the sqlite3 comm ...

  5. DzzOffice结合office web Apps私有部署的实例

    很多朋友都想在自己使用的DzzOffice中,调用本地部署的office web Apps server. 下面我就直接从头到尾的将部署全部过程分享给大家. 准备条件:两台服务器,配置稍高点,以免卡顿 ...

  6. javascript --- 面向对象 --- 封装

    javascript中有原型对象和实例对象 如有疑问请参考:http://www.ruanyifeng.com/blog/2010/05/object-oriented_javascript_enca ...

  7. 《VC++ 6简明教程》即VC++ 6.0入门精讲 学习进度及笔记

    VC++6.0入门→精讲 2013.06.09,目前,每一章的“自测题”和“小结”三个板块还没有看(备注:第一章的“实验”已经看完). 2013.06.16 第三章的“实验”.“自测题”.“小结”和“ ...

  8. WebApp开发经验

    1.自适应屏幕 <meta name="viewport" id="viewport" content="width = device-widt ...

  9. Android中设置全屏的方法

    在实际的应用程序开发中,我们有时需要把 Activity 设置成全屏显示,一般情况下,可以通过两种方式来设置全屏显示效果.其一,通过在代码中可以设置,其二,通过manifest配置文件来设置全屏. 其 ...

  10. android开发中遇到的bug

    这种NullPointerException这么解决啊 Activity.dispatchTouchEvent 里try catch一下 参考:http://www.eoeandroid.com/th ...