加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

flexpaper源码分析

发布时间:2020-12-15 04:16:57 所属栏目:百科 来源:网络整理
导读:1.flexpaper代码结构 图1: 图2: 2.FlexPaper,UI层次结构 主要分析viewer这个类 viewer的child有3层 最上层有个_skinImgDo:Image这个是flexPaper的logo,在右下角,放上去点击就弹出一个关于的alert 中间是_swfContainer:Canvas不过visible=false,中间这一

1.flexpaper代码结构

图1:


图2:


2.FlexPaper,UI层次结构

主要分析viewer这个类

viewer的child有3层

最上层有个_skinImgDo:Image这个是flexPaper的logo,在右下角,放上去点击就弹出一个关于的alert


中间是_swfContainer:Canvas不过visible=false,中间这一层是不可见的

? ? ? ? ?嵌套一个ui

? ? ? ? ? ? ? ? ui里面有一个_docLoader:AVM2Loader.DocumentContainer

最下层是一个_paperContainer:ZoomCanvas

? ? ? ? 嵌套一个_displayContainer:FlowBox ? FlowBox是一个VBox,加了鼠标拖拽的事件

? ? ? ? ? ? ? ?_displayContainer里面就是一个个DupImage,_pageList这个数组就是存放的DupImage,pdf有多少页就有多少个

? ? ? ? ? ? ? ? ? ? ? DupImage的child是DupLoader(当前视图页,和下面看不见的那一页都是DupLoader),或者是Bitmap或者没有child(看不见的其他页都是 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Bitmap或者空)

3.FlexPaper,Viewer初始化过程

Viewer的createChildren方法里面初始化各种child,添加了一个timer执行repositionPapers。随后执行FlexPaperViewer_Base的createChildren在这个方法里面对Viewer的DocLoader赋值
_docLoader:AVM2Loader,然后执行Viewer的set SWfFile,这个方法首先销毁Viewer的所有child然后给_docLoader添加一个加载完成的事件
_docLoader.addEventListener(SwfLoadedEvent.SWFLOADED,swfComplete,false,true);
随后执行createDisplayContainer重新创建child。然后执行_docLoader的load方法
_docLoader.load(new URLRequest(_swfFile),StreamUtil.getExecutionContext());


当load加载完成时,执行swfComplete

						var mobj:Object = event.swfObject.content;
						_libMC = new SwfDocument(mobj as MovieClip);
首先给_libMC赋值,然后执行createLoaderList,创建_docLoader.LoaderList:DupLoader,也就是最后我们看到的画面了
随后执行方法addInLoadedPages来添加页

 
 
				for(var i:int=0;i<numPages;i++){
					_libMC.gotoAndStop(i+1);
					createPaper(i+1,(_libMC.width>0)?_libMC.width:w,(_libMC.height>0)?_libMC.height:h);
				}		
				
				addPages();
createPaper创建DupImage对象,并依次给_pageList赋值,个数就是页数
addPages将所有的DupImage添加进_displayContainer:FlowBox

随后执行repositionPapers

LoaderList.loadBytes,加载整个pdf的Loader,最后将DupLoader添加进DupImage就显示出来了。。repositionPapers这个方法只显示动态对DupImage里面的child进行添加和移除,只让当前显示的DupImage里面的child是DupLoader并且让DupLoader跳转带指定的frame。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读