您的当前位置:首页正文

FLEXPAPER学习笔记整理

2023-03-06 来源:汇智旅游网
1.主要思路:文档(Word,PPT等)---->转换为pdf---->转换为SWFFlexPaper在线浏览第一步:文档--->转换为pdf用openoffice+jodconverter,openoffice是sun公司自己用Java写的一套开源office软件,openoffice的缺点在于这个文件很大。用Flashpaper实现,有绿色版,可通过命令行CMD调用。第二步:pdf-->转swf用pdf2swf,pdf2swf提供了命令行参数,我们可以通过Java的Runtime和Process调用pdf2swf提供的命令将pdf转为swf.第三步就是显示了,通过flexpaper实现2.CMD命令行中运行SWFTools文件夹名字带有空格对于-t,-o这两个参数,就是对于源文件路径来输出文件路径的问题,如果你的文件夹的名字中有空格的话,是不能找到文件的。比如说:要转换的pdf源文件在E:\\ProgramFiles\\SWFTools\\这个文件夹下,当我这样写-tE:\\ProgramFiles\\SWFTools\\ajax.pdf或者是输出文件路径写成这样-oE:\\ProgramFiles\\SWFTools\\ajax.swf这样都是不能成功的,因为这里面有文件夹名含有空格,在路径的前后加上又引号就能成功啦,如-o\"E:\\ProgramFiles\\SWFTools\\ajax.swf\"这样就OK啦.3.Flexpaper不能加载swf文件FlexPaper加载swf时,一直处于等待状态,无法显示,检查swf的路径也没错,但就是一直无法加载。这种情况,很有可能就是.swf文件的版本问题啦。我们运行SWFTools的图形工具(gpdf2swf.exe)把pdf转换为swf,但是转换后的swf也不能被Flexpaper正常加载,确保路径没错的话,那就是版本的问题啦。查看转换时swf的版本,可以点击Edit->Options->Viewer。解决方法:须把pdf转换为版本为9的swf,才能让它在Flexpaper中显示。那么如何转换为9的呢?我自己是使用cmd命令行工具来手工转换的.只须在命令行添加\"-sflashversion=9\"这句,就可以转换为9的版本啦.4.运行官方的DEMO及Flexpaper的用法打开刚刚下载好的Flexpaper文件夹,打开里面的例子index.html,(1)运行官方的例子,不能加载任何的.swf(包括例子中的swf)(如果能正常显示的话,请跳过这一步)----->使用运行官方例子的时起,连所带的Paper.swf都不能加载成功,只见到右上角的圈圈一直在动,处于等待的状态。:这种情况,是由于Flexpaper还没获得AdobeFlash的信任,这时你可以前住http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04a.html#119065为FlexPaper添加信任.进入网页之后,点击左边的GlobalSecuritySettingspapel这个选项,然后在右边为你的例子所在的文件夹添加信任。然后你再运行官方的例子,就会发现可以运行成功啦。(2)Flexpaper的用法我们可以查看index.html源代码,这里不多说,直接说它的用法吧:在前端的用法如下:234html中的代码,只需声明一个a标签即可varfp=newFlexPaperViewer('FlexPaperViewer','viewerPlaceHolder',{config:{示导入的.swf的路径-->Scale:0.6,ZoomTransition:'easeOut',ZoomTime:0.5,ZoomInterval:0.2,FitPageOnLoad:true,FitWidthOnLoad:false,PrintEnabled:true,FullScreenAsMaxWindow:false,ProgressiveLoading:false,MinZoomSize:0.2,MaxZoomSize:5,SearchMatchAll:false,130.131.132.133.134.135.136.137.ZoomTransition=\"{_ZoomTransition}\"ZoomTime=\"{_ZoomTime}\"ZoomInterval=\"{_ZoomInterval}\"FitPageOnLoad=\"{_FitPageOnLoad}\"FitWidthOnLoad=\"{_FitWidthOnLoad}\"FullScreenAsMaxWindow=\"{_FullScreenAsMaxWindow}\"ProgressiveLoading=\"{_ProgressiveLoading}\"/>5.去掉工具栏最右边[关于...]对话框的显示的按钮源文件:FlexPaperViewer.mxml将源码中查找所有的bttnInfo,共如下三处:Xml代码1.1)bttnInfo.visible=(newMenuIcons.SMALL_TRANSPARENT().width>10);用\"//\"注释掉2.2)bttnInfo.visible=(newMenuIcons.SMALL_TRANSPARENT().width>10);用\"//\"注释掉3.3)bttnInfo.visible=true;改为bttnInfo.visible=false;4.//spin1.visible=true;注释掉5.spin1.visible=false;6.去掉底部的logo图片:源文件:FlexPaperViewer.mxml将的属性最后行加入creationComplete处理:Xml代码1.creationComplete=\"initApp()xmlns:st=\"com.devaldi.skinnxmlns:ct=\"com.devaldi.contrxmlns:fp=\"com.devaldi.contraddedToStage=\"bindStageEven然后加入处理initApp()函数到中Xml代码1.publicfunctioninitApp():void{2.3.}paper1.removeElementAt(2);最后将源码中的函数papersLoadingHandler(event:Event)最后一行加上:paper1.removeElementAt(2);修改后如下所示:Xml代码1.protectedoverridefunctionpapersLoadingHandler(event:Event):void{2.3.4.5.6.7.}//spin1.start();//spin1.visible=true;spin1.visible=false;super.papersLoadingHandler(event);paper1.removeElementAt(2);7.菜单栏中文显示:右键项目--->属性---->Flex编译器--->在附加的编译器参数框里加入下面一句:-localezh_CN-source-path=locale/{locale}-keep-all-type-selectors=true即可。8.点击菜单后,logo又出现的问题:源文件:FlexPaperViewer.mxml修改如下代码:Xml代码1.2.Xml代码1.protectedoverridefunctiononViewModeChanged(event:ViewModeChangedEvent):void{2.txtPage.text=formatPageNumber(viewer.currPage);3.4.5.}super.onViewModeChanged(event);paper1.removeElementAt(2);8.到此源码就改好了。

因篇幅问题不能全部显示,请点此查看更多更全内容