2021SC@SDUSC SDUDOC项目分析(九)

DocumentManager(二)

addAfterCurrentPage:

通过方法体来看,应该是新建界面时调用的方法

DocumentManager.addAfterCurrentPage = async function(filename, src){
  //新建界面时调用的方法、
  //将选中的图片转base64传给服务器,获取服务器返回的src_link
  let request_src = await HttpRequest.uploadWebPage(filename, src);
  if(!request_src) return;
  //新建一个page实例
  let page = ElementManager.makeElement(Page.TAG, request_src);
  //将这个page添加进element与page array列表中
  this.addElement(Page.TAG, page);
  this._page_array.addAfterCurrentPage(page.id);

  //更新屏幕上显示的内容
  await this.afterChangePage();
  Engine.progress(100);
}

 clearCurrentPage:清除当前页面的内容

(但似乎只清除了dot)

DocumentManager.clearCurrentPage = function(){
  //似乎在逻辑上和clearPage一样。有什么不同??
  let page = this.getCurrentPageObject();
//调用page onRemove 方法
  page.onRemove.call(page);

  this.afterChangeElement();
}

page.onRemove()方法

//移除了当前所有界面的dot?
Page.prototype.onRemove = function(){
  Element.prototype.onRemove.call(this);
  let dots = ElementManager.getFilteredElements(Dot2D.TAG);
  for(let id in dots){
    DocumentManager.removeElement(Dot2D.TAG, id);
  }
};

removeCurrentPage:直接移除当前的page,从page_array和elemtManager中都移除

getCurrentPage,getCurrentPageId,getCurrentPageObject:获取当前页的各种信息

setCurrentPage:index为当前界面,并刷新屏幕显示

moveCurrentPageForward,moveCurrentPageBackward,moveCurrentPageTo:调用page_array的对应方法,并刷新

selectManager.js

私有属性:

SelectManager._target = null;

target指定当前选中的类

方法:

updateCheckData:从方法调用来看,是刷新界面将当前target元素选中

调用了 Engine.updateEditorCheckData();

selectObject:传入object,将target指向该object后更新

select:传入type,id,在elementManager中获取对应id后,调用selectObject选中

isSelected,isSelectedType:判断传入参数指代的元素当前是否被选中

unSelect:取消选中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值