定制个性化的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/
定制个性化的FlashPaper生成的文件的更多相关文章
- Taro 2.2 全面插件化,支持拓展和定制个性化功能
		
自 2.2 开始,Taro 引入了插件化机制,允许开发者通过编写插件的方式来为 Taro 拓展更多功能或者为自身业务定制个性化功能,欢迎大家进行尝试,共同讨论~ 当前版本 2.2.1 官方插件 Tar ...
 - bootstrap 中是通过写less文件来生成css文件,用什么工具来编写呢?
		
bootstrap 中是通过写less文件来生成css文件,用什么工具来编写呢? 如果用sublime的话如何实现代码保存后浏览器刷新成最新的代码样式? 或者有什么其他好用的工具? 从网上找了很多方法 ...
 - 利用MiddleGen-hibernate-r5生成hbm文件及POJO文件
		
1 先决条件 1.1 已安装JDK(版本1.5以上)并配置环境变量 到http://java.sun.com上下载JDK,配置环境变量(我的电脑右键->属性->高级-&g ...
 - POI生成EXCEL文件
		
POI生成EXCEL文件 一.背景 根据指定格式的JSON文件生成对应的excel文件,需求如下 支持多sheet 支持单元格合并 支持插入图片 支持单元格样式可定制 需要 标题(title),表头( ...
 - 将Mat类型坐标数据生成pts文件
		
前言 获取人脸特征点的坐标信息之后,想要将坐标信息shape保存为pts/asf/txt等文件格式,本文就对此进行实现. 实现过程 1.确定pts文件的书写格式: 以要生成的文件为例,书写格式如下: ...
 - Android 解析XML文件和生成XML文件
		
解析XML文件 public static void initXML(Context context) { //can't create in /data/media/0 because permis ...
 - SQL*Plus生成html文件
		
最近使用SQL*Plus命令生成html文件,遇到一些有意思的知识点,顺便记录一下,方便以后需要的时候而这些知识点又忘记而捉急.好记性不如烂笔头吗! 为什么要用SQL*Plus生成html文件? ...
 - vim保存文件时,生成.un~文件
		
在用vim保存文件时,文件夹下生成.un~文件 怎么删除这些文件呢 在网上搜索的答案: http://stackoverflow.com/questions/15660669/what-is-a-un ...
 - WPF根据Oracle数据库的表,生成CS文件小工具
		
开发小工具的原因: 1.我们公司的开发是客户端用C#,服务端用Java,前后台在通讯交互的时候,会用到Oracle数据库的字段,因为服务器端有公司总经理开发的一个根据Oracle数据库的表生成的cla ...
 
随机推荐
- mysql创建/删除表的例子
			
创建表 简单的方式 CREATE TABLE person ( number INT(11), name VARCHAR(255), birthday DATE ); 或者是 CREATE TABLE ...
 - svn 安装与设置
			
Subversion可以通过网络访问它的版本库,从而使用户可以在不同的电脑上使用.一定程度上可以说,允许用户在各自的地方修改同一份数据是促进协作. 运行Subversion服务器需要首先要建立一个版本 ...
 - 服务器中判断客户端socket断开连接的方法
			
1, 如果服务端的Socket比客户端的Socket先关闭,会导致客户端出现TIME_WAIT状态,占用系统资源. 所以,必须等客户端先关闭Socket后,服务器端再关闭Socket才能避免TIME_ ...
 - C#中 String 格式的日期时间 转为 DateTime
			
C#中并没有表示时间的变量,只有DateTime,所以要表示时间,可以用TimeSpan表示. 方法一:Convert.ToDateTime(string) string格式有要求,必须是yyyy-M ...
 - 8、NFC技术:让Android自动打开网页
			
创建封装Uri的NdefRecord public  NdefRecord  createUri(String  uriString);  public  NdefRecord  cre ...
 - 改进duilib的richedit控件的部分功能
			
转载请说明原出处,谢谢~~:http://blog.csdn.net/zhuhongshu/article/details/41208207 如果要使用透明异形窗体功能,首先要改进duilib库让他本 ...
 - strcpy基本用法
			
C语言标准库函数strcpy,把从src地址开始且含有NULL结束符的字符串复制到以dest开始的地址空间. C语言函数 原型声明:extern char *strcpy(char* dest, co ...
 - mongodb使用中遇到的问题汇总
			
1. 每次重新打开mongo,都会显示:forked process:xxxx ,然后用 find -name mongod.lock 进行搜索,发现在 ./var/lib/mongodb/ 目录下又 ...
 - 怎么监视跟踪一个进程(Process)中的MS Unit Test DLL的详细性能(performance)【asp.net C#】
			
Sample This tutorial will show how to instrument a unit test DLL for performance profiling. Visual S ...
 - 【转】 ASP.NET网站路径中~(波浪线)解释
			
刚开始学习ASP.NET的朋友可能会不理解路径中的-符代表什么,例如ImageUrl=”~/Images/SampleImage.jpg” 现在我们看看-代表什么意思.-是ASP.NET 的Web 应 ...