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:取消选中