flexpaper简单的二次开发
flexpaper二次开发目的:
- 去掉工具栏的打印按钮和FB关于按钮
- 去掉页面加载或重新加载时右下角的LOGO图片
- 去掉右键菜单的关于和打印
初次接触flexpaper,主要参考以下资料:
- mark的《Flexpaper二次开发入门教程(ajava.org发布)》
- flexpaper的二次开发总结及探讨 http://blog.csdn.net/kunoy/article/details/7903258
以上的参考资料很详细,感谢两位作者,不过还是有些不足的地方:
- 分栏和列表显示有BUG,显示不对
- 右下角的LOGO在swf第一次加载后没有,以后还是会出现
- 没有关于如何去掉右键菜单的关于和打印
本文基于FlexPaper2.0.2修改,使用Adobe Flash Builder 4.6
使用FlexPaper2.0.2的原因,2.0版本后能用jquery调用,很方便。
按照mark的教程新建Flex项目,导入源代码,修改中的myflexpaper.mxml文件后,属性,如下图设置:
由于版本的问题,有些代码可能要有相应的修改。
问题解决
1、解决分栏和列表显示的BUG,显示不正确
笔者根据mark的教程创建Flex项目,发现一个严重的缺陷,分栏显示结果有问题,经过多次尝试,发现应该是http://flexpaper.googlecode.com/svn/trunk/flexpaper源代码的FlexPaper_Resources.swc有问题,于是下载FlexPaper_2.0.2_SDK_3.5_swc并使用其FlexPaper_Resources.swc即可解决分栏BUG问题。
2、解决右下角的LOGO重新加载后出现的问题
在FlexPaperViewer.mxml文件中找到以下两个方法,并在方法体的最后一行加上paper1.removeChildAt(2);或者paper1.removeElementAt(2); 得看flex版本。mark的教程中没有处理onScaleChanged方法。
- protected override function papersLoadingHandler(event:Event):void
- private function onScaleChanged(event:Event):void
3、去掉右键菜单的打印和关于
在FlexPaperViewer_Base.mxml文件中找到下面的方法
- private function bindStageEvents(e:Event):void
该方法中contextMenu = new ContextMenu();相当于定义一个右键菜单,如下图:
效果如下图:
至此,这三个小问题都解决了,还有一个就是读取中文.swf文件的问题,笔者参考了以上的两份资料还是没有解决,由于考虑到实际应用中,以中文命名的swf文件不常见,也不好处理,一般使用ID等命名swf文件,也没有深究。
源码共享到git中
https://github.com/longjh00/myflexpaper.git
莫等闲,白了少年头,空悲切