创新实训项目分析(十二)

2021SC@SDUSC
本周分析DocumentManager
DocumentManager(一)
私有属性
在这里插入图片描述
filename:文档名
page_array: pageArry维护一个page_id组成的数组和current_page当前页面的index
header:文档的基本信息
在这里插入图片描述
Document中有对object、xml、json进行处理的方法,对项目实现具有重要作用,但是xml的解析使用已经被废弃了,故只解析Json与Object之间的关系
这部分代码实现了对Json的加载,分别对json_object的header和pageList和Elements部分进行加载

DocumentManager.loadJson = function (json_object) {
  this.clearData();
  this._header.loadJson(json_object.Header);
  this._page_array.loadJson(json_object.PageList);
  ElementManager.loadJson(json_object.Elements);
};

这部分代码实现了对Json的保存,分别对json_object的header和pageList和Elements部分进行保存

DocumentManager.saveJson = function () {
  let output = {};
  output.Header = this._header.saveJson();
  output.PageList = this._page_array.saveJson();
  output.Elements = ElementManager.saveJson();
  return output;
};

这部分代码实现了对Json的导出,分别对json_object的header和pageList和Elements以及Document部分进行到处

DocumentManager.exportJson = function () {
  let output = {};
  output.Header = this._header.exportJson();
  output.Document = this.getExportDocument();
  output.PageList = this._page_array.exportJson();
  output.Elements = ElementManager.exportJson();
  return output;
};

接下来是对DocumentManger中最大的generateDocumentByText进行解析
首先是对一系列变量进行初始化
在这里插入图片描述
然后对 newPage进行初始化
在这里插入图片描述

先对canvas进行初始化
在这里插入图片描述
然后开始在canvas上进行绘制,并保存
在这里插入图片描述
然后分别对不同的类型进行处理
再调用createModulePage方法创建样例页面
在这里插入图片描述
最终对页面填写元素
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值