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