定制个性化的FlashPaper生成的文件
1:找到已安装FlashPaper目录下的子目录Interface下的文件DefaultViewer2.swf,在此swf文件的基础上实现自己的修改。
2:利用swf反编译工具,这里推荐 硕思闪客精灵(SWFDecompiler),保存SWFDecompiler反编译过的.fla文件。
3:利用falsh制作工具(如Adobe Flash Professional CS5),打开此fla文件,找到第3个帧,添加下列代码即可实现定制(具体说明可以参考附后资料,隐藏即false,显示即true,请根据需要自行修改):
gMainView.showUIElement("PrevNext", true);
gMainView.showUIElement("Print", false);
gMainView.showUIElement("Find", true);
gMainView.showUIElement("Tool", false);
gMainView.showUIElement("Pop", false);
gMainView.showUIElement("Zoom", true);
gMainView.showUIElement("Page", true);
gMainView.showUIElement("Overflow", true);
4:将修改过的fla导出为swf文件,命名为DefaultViewer2.swf,找到FlashPaper的安装路径X:\Program Files\Macromedia\FlashPaper 2\Interface,覆盖下面的swf文件即可。
即完成swf的自定制。
页面展示部分:
如果直接在页面上展示swf文件,那么有点IT常识的人依旧可以在客户端通过迅雷等软件捕获swf文件,然后下载下来,这样依旧不能保护swf文件。在这里我的解决方法是利用一个空swf文件来加载你需要展示的swf文件,这样即使swf被捕获也只能捕获到这个空swf文件。而且,切记空swf需要加密的,否则被反编译后依旧很容易找到你的展示文件。
属性摘要
属性 |
说明 |
documentPath:String |
FlashPaper文件的路径. |
borderThickness:Number |
边框宽度. |
borderColor:String |
边框颜色. |
UIElements:Object |
外观元素的可见性. |
currentZoom:Object |
默认缩放比例. |
width:Number |
FlashPaper文件的宽度. |
height:Number |
FlashPaper文件的高度. |
UIElements属性的图示
事件摘要
事件 |
说明 |
onLoadStart = function(target:FlashPaper, type:String) {} |
当FlashPape文件已开始下载文件时调用. |
onLoadProgress = function(target:FlashPaper, type:String, bytesLoaded:Number, bytesTotal:Number) {} |
每当FlashPape文件写入硬盘时调用. |
onLoadComplete = function(target:FlashPaper, type:String) {} |
当FlashPape文件完全下载时调用. |
onLoadInit = function(target:FlashPaper, type:String) {} |
当执行FlashPape文件第一帧上的动作时调用. |
onLoadError = function(target:FlashPaper, type:String, errorCode:String) {} |
当FlashPape文件未能加载时调用. |
onDisplay = function(target:FlashPaper, type:String) {} |
当FlashPape文件已经显示时调用. |
onUnload = function(target:FlashPaper, type:String) {} |
当卸载FlashPape文件时调用. |
onPageChanged = function(target:FlashPaper, type:String, newPageNumber:Number) {} |
当FlashPape文件翻页时调用. |
onZoomChanged = function(target:FlashPaper, type:String, percent:Number) {} |
当FlashPape文件缩放时调用. |
onSelection = function(target:FlashPaper, type:String) {} |
当FlashPape文件的文字被选择时调用. |
onToolChanged = function(target:FlashPaper, type:String, newTool:String) {} |
当更换FlashPape文件的工具时调用. |
onEnableScrolling = function(target:FlashPaper, type:String, enable:Boolean) {} |
当FlashPape文件滚动时调用. |
onVisibleAreaChanged = function(target:FlashPaper, type:String) {} |
当FlashPape文件的哭件区域变化时调用. |
方法摘要
方法 |
说明 |
load(path:String) : Void |
载入一个FlashPape文件. |
destroy() : Void |
卸载FlashPape文件. |
move(x:Number, y:Number) : Void |
移动FlashPape组件). |
toString() : String |
返回组件的名称. |
getIFlashPaper() : FlashPaper.IFlashPaper |
返回一个实现IFlashPaper接口的对象. |
getViewerType() : String |
返回一个描述包含SWF文件的接口的类型的字符串. |
getViewerVersion() : Number |
返回一个标识这个文件接口版本代号整数. |
getCurrentPage() : Number |
返回当前页数(与工具栏显示的相同).第一页是1. |
setCurrentPage(pageNumber:Number) : Void |
设置当前页数.需要保证此页是可显示的,但不必调节缩放. |
getNumberOfPages() : Number |
返回文件总页数. |
getLoadedPages() : Number |
返回当前载入的页数(可显示的). getLoadedPages() == getNumberOfPages() 时,这个文件便完全载入. |
showUIElement(part:String, flag:Boolean) : Void |
应藏或者显示FlashPaper文件外观的部件.区分大小写: "PrevNext" 前一页和后一页按钮的隐藏或显示. "Print" 打印按钮的隐藏或显示. "Tool"所有工具选择按钮的隐藏或显示. "Zoom" 所有所放控制按钮的隐藏或显示. "Find"文字搜索框的隐藏或显示. "Pop" 在浏览器中打开文件按钮的隐藏或显示. "Sidebar"边框 (显示文件边框)按钮的隐藏或显示. "Page" 当前页和总页数按钮的隐藏或显示 "Overflow" 超出菜单的隐藏或显示. "ZoomKeys" 这个参数不影响外观;他控制是否能用快捷键所放文件(例如, +, -, p, w). "Brand" 品牌按钮的隐藏或显示.[注:此属性设置false也无法隐藏左上角FlashPaper的标志,估计是因为Adobe不太希望自己的标志被隐藏,既然这样,不知道这个Brand还存在于API中还有什么意义] |
traceUIElements() : Void |
输出UI Elements的可见性. |
printTheDocument() : Boolean |
模仿用户单击答应按钮. 在调用函数前,文件必须完全载入. |
getCurrentZoom() : Number |
返回当前缩放水平. |
setCurrentZoom(percent:Object) : Void |
设置当前缩放水平.你可以传入一个数值指示所放百分比 (例如, 100表示100%)..你也可以传入一个字符串 "width"适合页面宽度,或者传入字符串 "page"适合到页. |
setSize(w:Number, h:Number) : Boolean |
设置组件的显示排列,单位是象素. |
goToLinkTarget(linktarget:String, window:Object) : Void |
触发锚点或URL连接请求. |
enableScrolling(flag:Boolean) : Boolean |
阻止用户滚动文件.当滚动被禁止时: 滚动条不可用,但是可见. |
getCurrentTool() : String |
返回当前活动的工具.如果没有活动的工具,则返回空字符串.以下是现在支持的值: "" (没有工具) |
setCurrentTool(tool:String) : Boolean |
设置活动工具.如果参数错误或者该工具不可用则返回false.以下是现在支持的值: "" (没有工具) |
getTextSelectionRange() : FlashPaper.SelectionRange |
返回一个描述当前选择文字的对象.如果没有选择文字,则返回null. |
setTextSelectionRange(sel:FlashPaper.SelectionRange, skipBroadcast:Boolean) : Void |
选择特定的文字.你可以传入null,从而取消选定所有的文字.无效的范围(没有页面)会被省略(它允许你设定范围从0到一个很大的数,例如999999,从而选定所有文档).如果skipBroadcast是false (或未定义), 会广播onVisibleAreaChanged(). 如果skipBroadcast是true, 则不会广播onVisibleAreaChanged(). |
getSelectedText() : String |
以Unicode编码的字符串返回选择的文字.如果每有被选择的文字,会返回空字符串. |
getSidebarWidth() : Number |
返回其他按钮的宽度. |
setSidebarWidth(w:Number) : Void |
设置其他按钮的宽度. |
getFindText() : String |
以Unicode编码的字符串返回查找的文字. |
setFindText(s:String) : Void |
设置文字查找框的文字. |
findNext() : Boolean |
查找文字查找框中输入的文字. |
getVisibleArea() : Object |
返回描述文档当前可见区域的对象.返回的对象有如下作用: 传入setVisibleArea(). 与先前getVisibleArea()返回的对象进行比较,测试可见区域是否改变. 返回的对象应该被认为是封闭的数据结构.不要试图分解返回的对象,因为在将来的版本中内容的格式可能不同. function equals(that:Object):Boolean; 我们可以用它比较两个可见区域是否相同. |
setVisibleArea(area:Object, skipBroadcast:Boolean) : Void |
调节当前可见的页/缩放/滚动从而匹配给定的区域对象. |
转载:http://szjazz.blog.163.com/blog/static/35133021201211230455321/
最新文章
- [LeetCode] Trips and Users 旅行和用户
- python命令行下安装redis客户端
- 样式link属性media用法--媒体类型查询
- java 网络编程(五)----TCP进阶篇上传文本文件
- Inno Setup 安装前卸载原程序
- 无密码通过ssh执行rsync
- 第一个Servlet
- 修改VC++2010界面左上角图标
- DLL导出与调用约定
- 数据库(学习整理)----5--Oracle常用的组函数
- .Net下简单地实现MD5加密
- 51nod算法马拉松 contest7
- 博客维护停止,需要的伙伴们移步http://blog.csdn.net/panhouye
- if语句和switch语句
- ubuntu16.04 桌面图标左侧,右侧,底部进行切换
- jQuery自动完成点击html元素
- sql server 创建内联表值函数
- ABAP-FTP通用操作
- Linux链接文件ln
- ajax 测试
热门文章
- SpringMVC注解@initbinder解决类型转换问题
- shell 中awk、if while 例子
- leetcode:Integer to Roman(整数转化为罗马数字)
- STL-next permutation
- JavaScript中,{}+{}等于多少?
- Inverse是hibernate双向关系中的基本概念。inverse的真正作用就是指定由哪一方来维护之间的关联关系。当一方中指定了“inverse=false”(默认),那么那一方就有责任负责之间的关联关系,说白了就是hibernate如何生成Sql来维护关联的记录
- PHP中mysql_affected_rows()和mysql_num_rows()区别
- asp.net mvc让我告诉你请求从哪里来
- Linux进程间通信——使用共享内存
- permission denied部署django 遇到没有python_egg_cache的问题解决