本文主要讨论、描述了使用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. JBPM4之decision节点:3、程序猿|菜鸟|攻城狮|牛人

    JBPM入门系列文章: JBPM4入门——1.jbpm简要介绍 JBPM4入门——2.在eclipse中安装绘制jbpm流程图的插件 JBPM4入门——3.JBPM4开发环境的搭建 JBPM4入门—— ...

  2. Symfony2学习笔记之表单

    对于一个Web开发者来说,处理HTML表单是一个最为普通又具挑战的任务.Symfony2集成了一个Form组件,让处理表单变的容易起来.在这一节里,我们将从基础开始创建一个复杂的表单,学习表单类库中最 ...

  3. 将垃圾送入无底洞,顺便整理dev知识

    相信用过Linux的童鞋们都用过crontab来做定时任务,不需要额外的安装程序和配置,一条简单的语句搞定定时任务,但是小伙伴们发现了没,如果你的定时任务执行频率很高而且会产生大量的输出的话,你的老爷 ...

  4. 小数点输出精度控制问题 .xml

    pre{ line-height:1; color:#9f1d66; background-color:#d2d2d2; font-size:16px;}.sysFunc{color:#5d57ff; ...

  5. python 数字和字符串转换问题

    一.python中字符串转换成数字 (1)import string tt='555' ts=string.atoi(tt) ts即为tt转换成的数字 转换为浮点数 string.atof(tt) ( ...

  6. 数往知来 ASP.NET 模拟服务器:服务端_静态页面_动态页面的响应<十七>

      一.客户端是怎么看到我们的网页的呢/ 在浏览器端,如果用汉语请求的是一普通的HTML网页,呢么我们的IIS服务器, 接收到请求以后,那么从IIS服务器所在的电脑区查找该HTML网页, 找到以后将该 ...

  7. 千万别把js的正则表达式方法和字符串方法搞混淆了

    我们在字符串操作过程中肯定经常用了test() split() replace() match() indexof()等方法,很多人经常把用法写错了,包括我,所以今天细细的整理了下. test()是判 ...

  8. javascript对象事件绑定方法

    javascript对象事件绑定方法 今天在做对象事件绑定的过程中出现了一点异外情况,由于事件方法是由参数传过来的,需要将当前对象call过去,方便方法体里直接调用this 错误写法 obj.oncl ...

  9. c++数组、字符串操作

    一.数组操作 1.数组初始化1-1一维数组初始化:标准方式一: int value[100]; // value[i]的值不定,没有初始化标准方式二: int value[100] = {1,2}; ...

  10. mongdb创建自增主键(primary key)的相关讨论 - Jason.Zhi

    根据mongodb官方文档介绍,如果在插入(insert)操作时,没有指定主键id,那么它会自动给插入行自动附上一个主键id.看起来不错,但是详细看看,就会发现这个id值有点复杂. 如下图: mong ...