flexpaper简单的二次开发

flexpaper二次开发目的:
  • 去掉工具栏的打印按钮和FB关于按钮
  • 去掉页面加载或重新加载时右下角的LOGO图片
  • 去掉右键菜单的关于和打印
初次接触flexpaper,主要参考以下资料:
  • mark的《Flexpaper二次开发入门教程(ajava.org发布)》
  • flexpaper的二次开发总结及探讨  http://blog.csdn.net/kunoy/article/details/7903258
以上的参考资料很详细,感谢两位作者,不过还是有些不足的地方:
  1. 分栏和列表显示有BUG,显示不对
  2. 右下角的LOGO在swf第一次加载后没有,以后还是会出现
  3. 没有关于如何去掉右键菜单的关于和打印
本文基于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
 
posted @ 2012-11-22 10:14  longjh  阅读(4815)  评论(13编辑  收藏  举报