1.搭建Flexbuilder环境,网上很多,不在赘述。(FlexPaper要求的是Flex4,因为Flex3有的代码不支持)。
2.通过http://flexpaper.googlecode.com/svn/trunk/这个地址,获取Flexpaper的源码(我下载的是2012-1-24日的版本)。在获取前,我们需要安装SVN,这里我们使用TortoiseSVN,安装后打开,选择file->TortoiseSVN->Repo-browser,输入上面的地址即可。(文件见附件,FlexPaper.rar 文件)。
3.新建一个Flex项目,将FlexPaper源码下的src目录和local目录覆盖到你新建的Flex项目的src目录,以及lib下的FlexPaper_Resources.swc文件拷贝到项目的libs目录下。如附件所示:项目结构.jpg。
4.在默认包下打开和你项目名称同名的一个mxml文件,加入如下代码:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
xmlns:fp="com.devaldi.controls.flexpaper.*"
width="100%" height="100%" applicationComplete="initApp();" layout="absolute"
viewSourceURL="srcview/index.html">
<mx:Script>
<![CDATA[
import mx.controls.Alert;
public var _aid = 0;//文档ID
[Bindable]
public var _Scale:Number = 1;//缩放比例
[Bindable]
public var _SwfFile:String = "";//SWF文件路径
[Bindable]
public var _ZoomTransition:String = "easeOut";
[Bindable]
public var _ZoomTime:Number = 0.6;
[Bindable]
public var _ZoomInterval:Number = 0.1;
[Bindable]
public var _FitPageOnLoad:Boolean = true;//加载后适合高度
[Bindable]
public var _FitWidthOnLoad:Boolean = true;//加载后适合宽度
[Bindable]
public var _PrintEnabled:Boolean = true;//是否支持打印
[Bindable]
public var _FullScreenAsMaxWindow:Boolean = false;//是否支持全屏
[Bindable]
public var _ProgressiveLoading:Boolean = false;//是否延迟加载
[Bindable]
public var _localeChain:String = "zh_CN";//语言
private var isFocus:Boolean = false;
//初始化参数
private function initApp():void{
var params:Object = Application.application.parameters;
_Scale = getNumber(params, "Scale", 1);
_SwfFile = getString(params, "SwfFile", "Paper.swf");
_ZoomTransition = getString(params, "ZoomTransition", "easeOut");
_ZoomTime = getNumber(params, "ZoomTime", 0.6);
_ZoomInterval = getNumber(params, "ZoomInterval", 0.1);
_FitPageOnLoad = getBoolean(params, "FitPageOnLoad", false);
_FitWidthOnLoad = getBoolean(params, "FitWidthOnLoad", false);
_PrintEnabled = getBoolean(params, "PrintEnabled", true);
_FullScreenAsMaxWindow = getBoolean(params, "FullScreenAsMaxWindow", false);
_ProgressiveLoading = getBoolean(params, "ProgressiveLoading", true);
_localeChain = params["localeChain"];
//注册事件监听
this.addEventListener(MouseEvent.MOUSE_OVER, onMouseOver);
this.addEventListener(MouseEvent.MOUSE_OUT, onMouseOut);
//开放给外部(javascript)调用
ExternalInterface.addCallback("hasFocus", hasFocus);
//ExternalInterface.addCallback("focus", focus);
ExternalInterface.addCallback("setViewerFocus", setViewerFocus);
}
private function onMouseOver(event:MouseEvent):void{
this.isFocus = true;
}
private function onMouseOut(event:MouseEvent):void{
this.isFocus = false;
}
public function hasFocus():Boolean{
//Alert.show("hasFocus");
return isFocus;
}
public function setViewerFocus(isFocus:Boolean):void{
//Alert.show("setViewerFocus");
this.paperViewer.setViewerFocus();
}
/**
*
* 获取String类型参数
* 如果没有,则返回默认值
**/
private function getString(params:Object, name:String, def:String):String{
if(params[name] != null){
return params[name];
}
return def;
}
private function getNumber(params:Object, name:String, def:Number):Number{
if(params[name] != null){
return params[name];
}
return def;
}
private function getBoolean(params:Object, name:String, def:Boolean):Boolean{
//Alert.show("比较:"+name);
if(params[name] != null){
return params[name] == "true";
}
return def;
}
]]>
</mx:Script>
<!--mx:Panel x="165" y="76" width="250" height="200" layout="absolute" title="一个人">
<mx:Label x="59" y="37" text="{Scale}" width="88"/>
</mx:Panel-->
<fp:FlexPaperViewer id="paperViewer"
width="100%"
height="100%"
Scale="{_Scale}"
SwfFile="{_SwfFile}"
ZoomTransition="{_ZoomTransition}"
ZoomTime="{_ZoomTime}"
ZoomInterval="{_ZoomInterval}"
FitPageOnLoad="{_FitPageOnLoad}"
FitWidthOnLoad="{_FitWidthOnLoad}"
FullScreenAsMaxWindow="{_FullScreenAsMaxWindow}"
ProgressiveLoading="{_ProgressiveLoading}" />
</mx:Application>
5.去掉工具栏最右边[关于...]对话框的显示的按钮
源文件:FlexPaperViewer.mxml
将源码中查找所有的bttnInfo,共如下三处:
1)bttnInfo.visible = (new MenuIcons.SMALL_TRANSPARENT().width > 10);用"//"注释掉
2)bttnInfo.visible = (new MenuIcons.SMALL_TRANSPARENT().width > 10);用"//"注释掉
3)bttnInfo.visible = true;改为bttnInfo.visible = false;
//spin1.visible = true;注释掉
spin1.visible = false;
6.去掉底部的logo图片:
源文件: FlexPaperViewer.mxml
将<fp:FlexPaperViewer_Base ...>的属性最后行加入creationComplete处理:
<fp:FlexPaperViewer_Base xmlns:mx="http://www.adobe.com/2006/mxml"
addedToStage="bindStageEvents(event)"
xmlns:fp="com.devaldi.controls.flexpaper.*"
xmlns:ct="com.devaldi.controls.*"
xmlns:st="com.devaldi.skinning.*"
creationComplete="initApp()">
然后加入处理initApp()函数到<mx:Script>中
public function initApp():void {
paper1.removeElementAt(2);
}
最后将源码中的函数papersLoadingHandler(event:Event)最后一行加上:paper1.removeElementAt(2);修改后如下所示:
protected override function papersLoadingHandler(event:Event):void{
//spin1.start();
//spin1.visible = true;
spin1.visible = false;
super.papersLoadingHandler(event);
paper1.removeElementAt(2);
}
7.菜单栏中文显示:
右键项目--->属性---->Flex编译器--->在附加的编译器参数框里加入下面一句:-locale zh_CN -source-path=locale/{locale} -keep-all-type-selectors=true即可。
8.点击菜单后,logo又出现的问题:
源文件: FlexPaperViewer.mxml修改如下代码:
<st:GradientImageButton icon="{MenuIcons.SINGLE_PAGE}" styleName="toolbttn" width="20" click="paper1.switchMode(Viewer.InitViewMode);paper1.removeElementAt(2);" toolTip="@Resource(key='SinglePage', bundle='FlexPaper')" selected="{paper1.ViewMode == Viewer.InitViewMode}" tabIndex="2" visible="{ViewModeToolsVisible}" includeInLayout="{ViewModeToolsVisible}"/>
<st:GradientImageButton icon="{MenuIcons.TWO_PAGE}" styleName="toolbttn" width="20" click="paper1.switchMode('TwoPage');paper1.removeElementAt(2);" toolTip="@Resource(key='TwoPage', bundle='FlexPaper')" selected="{paper1.ViewMode == ViewModeEnum.TWOPAGE}" tabIndex="3" visible="{ViewModeToolsVisible}" includeInLayout="{ViewModeToolsVisible}"/>
<st:GradientImageButton icon="{MenuIcons.THUMBS}" styleName="toolbttn" width="20" click="paper1.switchMode('Tile');paper1.removeElementAt(2);" toolTip="@Resource(key='ThumbView', bundle='FlexPaper')" selected="{paper1.ViewMode == ViewModeEnum.TILE}" tabIndex="4" visible="{ViewModeToolsVisible}" includeInLayout="{ViewModeToolsVisible}"/>
protected override function onViewModeChanged(event:ViewModeChangedEvent):void{
txtPage.text = formatPageNumber(viewer.currPage);
super.onViewModeChanged(event);
paper1.removeElementAt(2);
}
到此源码就改好了。
- 大小: 22.9 KB
分享到:
相关推荐
综上所述,这个FlexPaper源码修改版提供了一个更加可控、定制化的在线文档查看解决方案,特别是对于需要处理中文文件名和限制打印功能的场景。开发者可以根据自身的实际需求,灵活运用和进一步优化这个版本。
flexpaper源码,去掉了logo,去掉了about按钮。可以用Flash builder直接打开,进行二次开发,生成的flexPaper.swf改名为FlexPaperViewer.swf后就可以直接导入从flexPaper网站下载的例子中使用
3. **源码修改**:提供的"修改后的源码"可能包括了对原始FlexPaper代码的调整,如去Logo功能,这通常是通过修改客户端展示代码实现的,找到显示Logo的部分并移除或替换。 4. **自定义功能**:除了去Logo,源码还...
此外,源码修改可能涉及到版本控制,因此熟悉SVN(Subversion)这样的版本控制系统是必要的,它可以追踪和管理代码变更。 在深入修改源码之前,建议先在本地环境中搭建一个开发环境,进行编译和测试,确保修改不会...
这个“flexpaper 源码”指的是FlexPaper的核心代码库,提供了SDK(Software Development Kit),供开发者进行二次开发,以集成到自己的应用或网站中,实现自定义的功能或界面。 在FlexPaper SDK4中,我们可以找到...
FlexPaper 是一款强大的在线PDF阅读器,它提供了丰富的...总之,通过这套FlexPaper源码和示例,开发者不仅可以快速搭建在线PDF阅读功能,还可以深入理解其工作原理,从而进行二次开发和定制,满足更复杂的业务需求。
标题“flexpaper源码下载”暗示我们将讨论Flexpaper的源代码获取以及可能的定制与开发工作。 描述中提到,为了实现高级别的在线阅读安全性,我们需要对Flexpaper和SWF文件进行双重加密。Flexpaper的加密处理是在...
这个源码包提供了一整套解决方案,让开发者能够轻松地在网站上嵌入高质量的PDF阅读体验。下面我们将详细探讨FlexPaper的核心特性、工作原理以及如何在项目中集成和自定义。 1. **FlexPaper核心特性**: - **多格式...
在Adobe Flash Builder中创建一个新的Flex项目,并将下载的Flexpaper源码复制到项目目录下。这一步骤对于集成Flexpaper的功能至关重要,同时也为后续的定制开发打下基础。 ### SWFTools的简单使用 SWFTools是与...
这个"FLexPaper实现java在线预览源码"的项目可能包含了对FlexPaper的集成、自定义配置以及去除特定功能的代码修改。 首先,关于"去Logo",这通常意味着在预览文档时,源码中可能包含了移除FlexPaper默认显示的Logo...
4. **源码修改** 这个版本的FlexPaper是个人开发者基于原始源码进行修改的结果,体现了开发者对FlexPaper框架的深入理解和编程技能。源码级别的修改可能涉及到JavaScript、ActionScript或服务器端脚本,以实现特定...
源码的提供意味着开发者可以直接查看和修改FlexPaper的内部实现,这对于深度定制和性能优化非常有帮助。通过分析源码,开发者可以更好地理解其工作原理,解决潜在问题,或者添加特定的功能模块。 Web例子是...
在进行二次开发时,需要深入理解FlexPaper的源码结构,熟悉其组件模型和事件模型。同时,由于涉及跨语言(ActionScript和JavaScript)交互,对这两者都要有扎实的基础。在压缩包文件"flex项目.rar"中,可能包含了...
4. **Changelog.txt**: 这个文件记录了 FlexPaper 2.1.5 版本的所有更改和更新。通过阅读它,开发者可以了解此版本相对于前一版本做了哪些改进、修复了哪些bug,以及可能引入的新功能。 5. **LICENSE 文件**: ...
- **源码开放**:开发者可以查看和修改源码,根据需求进行扩展和优化。 然而,随着HTML5和移动设备的普及,Flash的支持逐渐减少。因此,在现代项目中,开发者可能需要考虑使用FlexPaper的HTML5替代方案,如PDF.js或...
首先,你需要获取FlexPaper的源码,这通常在官方下载页面可以找到。解压下载的压缩包,里面包含了JavaScript、CSS、图片以及HTML示例文件。 1. **去除Logo**: - 找到FlexPaper的皮肤文件夹,一般在`skins`目录下...
2.3 导入Flexpaper源码到Flash Builder 创建一个新的Flex项目,然后将下载的Flexpaper源代码复制到项目目录中,以便在项目中使用和修改。 **3. SWFTools的简单使用** SWFTools是Flexpaper的重要辅助工具,用于将PDF...
基于FlexPaper 2.1.2 版本修改的Flex源码 博客地址:http://www.cnblogs.com/xcong/p/3142155.html 修复双页、缩略图、搜索BUG。 去关于、Logo。 打印添加属性控制。 增加书签功能。