您的位置:首页 > 房产 > 建筑 > DDei在线设计器-API-DDeiStage

DDei在线设计器-API-DDeiStage

2024/12/23 14:45:28 来源:https://blog.csdn.net/hoslay1/article/details/139957189  浏览:    关键词:DDei在线设计器-API-DDeiStage

DDeiStage

  DDeiStage代表一个舞台,一个舞台含有多个DDeiLayer(图层)
  DDeiStage实例包含了一个舞台的所有数据,以及渲染器,在获取后可以通过它访问其他内容。DDeiSheetDDei中都有stage属性,前者的关系是固定的,后者指向当前激活的画布。

  一个DDeiSheet实例至少包含一个DDeiStage实例。

  本篇最后提供的示例可以在DDei文档直接预览

属性

属性名说明数据类型静态默认值备注
unicode唯一编号string系统生成自动编码
idIdx当前图形的ID种子number
layers图层集合DDeiLayer[]
layerIndex当前的图层下标number-1
selectedModels选中模型DDeiAbstractShape[]当前选中图形
ratio缩放比率number1.0
width画布宽度number
height画布高度number
wpv视窗开始点object(0,0,0)
spv纸张标量开始点object中心
mark水印object查看详情
paper纸张object查看详情
ruler标尺object查看详情
grid网格线object查看详情
ddInstanceDDei实例DDei
modelType模型类型stringDDeiStage

方法

static loadFromJSON

  将JSON转换为一个DDeiStage实例

参数

参数名类型范围默认值备注
jsonobject文件JSON数据
tempDataobject用于初始化的数据:{currentDdInstance:当前ddInstance实例}

返回值

类型备注
DDeiStageDDeiStage实例

toJSON

  将DDeiStage实例转换为JSON对象

参数

  无

返回值

类型备注
JSON包含了DDeiStage所有信息的JSON对象

initRender

  初始化渲染器,并绑定

参数

  无

返回值

  无

calModelNumber

  计算并返回当前舞台的模型总数量

参数

  无

返回值

类型备注
number模型总数量

addLayer

  添加图层到舞台中

参数

参数名类型范围默认值备注
layerDDeiLayer/undefined图层,为空会初始化一个
layerIndexnumber/undefined位置下标,为空会添加到末尾

返回值

类型备注
DDeiLayer被添加的图层

changeLayer

  切换当前图层

参数

参数名类型范围默认值备注
layerIndexnumber位置下标

返回值

  无

removeLayer

  删除图层

参数

参数名类型范围默认值备注
layerIndexnumber位置下标,为空时移除当前图层

返回值

类型备注
DDeiLayer被删除的图层

addModel

  添加模型到当前图层

参数

参数名类型范围默认值备注
modelDDeiAbstractShape模型

返回值

  无

getModelById

  根据ID获取图形

参数

参数名类型范围默认值备注
idstringid
allLayerbooleanfalse默认当前图层,true所有图层

返回值

类型备注
DDeiAbstractShape/null图形实例

getModelsByBaseType

  根据类别获取图形

参数

参数名类型范围默认值备注
bmtstring模型类型来自modelType/baseModelType

返回值

类型备注
DDeiAbstractShape[]图形实例列表

removeModel

  删除当前图层模型

参数

参数名类型范围默认值备注
modelDDeiAbstractShape模型
destroybooleanfalse是否销毁

返回值

  无

removeModelById

  根据ID删除控件

参数

参数名类型范围默认值备注
idsstring[]id列表

返回值

  无

cancelSelectModels

  取消选择图形

参数

参数名类型范围默认值备注
modelsDDeiAbstractShape[]/undefined模型列表
ignoreDDeiAbstractShape[]/undefined忽略模型列表

返回值

  无

displayLayer

  显示图层

参数

参数名类型范围默认值备注
layerIndexnumber下标
tempbooleanfalse临时显示

返回值

  无

hiddenLayer

  隐藏图层

参数

参数名类型范围默认值备注
layerIndexnumber下标

返回值

  无

setStageRatio

  设置缩放比率

参数

参数名类型范围默认值备注
newValuenumber1.0缩放比率

返回值

  无

getStageRatio

  获取缩放比率

参数

  无

返回值

类型备注
number缩放比率

notifyChange

  通知改变,刷新画布

参数

  无

返回值

  无

示例

代码

<script setup lang="ts">
import DDeiEditorView from "ddei-editor";
import {DDeiEditor,DDeiStage,DDeiLayer,DDeiCoreStandLayout,DDeiAbstractShape} from "ddei-editor";
import { defineComponent, markRaw,getCurrentInstance,ref } from "vue";
//获取主对象实例,代替this获取$refs
const {proxy} = getCurrentInstance()const options = markRaw({config: { "grid": 0, //网格线"background": { color: "blue", opacity: 0.1 }, //背景色initData: {controls: [{model: "102010",text: "初始化图形"},]}},//配置扩展插件extensions: [//布局的配置DDeiCoreStandLayout.configuration({//配置插件'top': [],'middle': ['ddei-core-panel-canvasview'],'bottom': [],'left': [],'right': []}),],
})const createControl = () => {//获取编辑器 let editor:DDeiEditor = proxy.$refs["ddei_editor_api_3"].editor;let stage:DDeiStage = editor.files[0].sheets[0].stage//添加控件editor.addControls([{id:"control_1",model: "102010",text: "新图形"},]);
};
const removeControl = () => {//获取编辑器 let editor:DDeiEditor = proxy.$refs["ddei_editor_api_3"].editor;let stage:DDeiStage = editor.files[0].sheets[0].stage//删除控件stage?.removeModelById(["control_1"])
};const addLayer = () => {//获取编辑器 let editor:DDeiEditor = proxy.$refs["ddei_editor_api_3"].editor;let stage:DDeiStage = editor.files[0].sheets[0].stage//添加图层let newLayer:DDeiLayer = stage.addLayer(null,0);newLayer.initRender();
};
const removeLayer = () => {//获取编辑器 let editor:DDeiEditor = proxy.$refs["ddei_editor_api_3"].editor;//获取舞台let stage:DDeiStage = editor.files[0].sheets[0].stage//删除图层stage.removeLayer(0);
};</script><template><button @click="addLayer" style="border:1px solid grey;margin-left:5px;padding:5px">新增图层</button>
<button @click="removeLayer" style="border:1px solid grey;margin-left:5px;padding:5px">删除图层</button>
<button @click="createControl" style="border:1px solid grey;margin-left:5px;padding:5px">创建控件</button>
<button @click="removeControl" style="border:1px solid grey;margin-left:5px;padding:5px">删除控件</button><div style="width:400px;height:400px;margin:100px auto;"><DDeiEditorView :options="options" ref="ddei_editor_api_3" id="ddei_editor_api_3"></DDeiEditorView>
</div>
</template>

仓库信息

源码: https://gitee.com/hoslay/ddei-editor

文档: http://docs.ddei.top

在线体验: https://www.ddei.top

技术支持

QQ:3697355039     邮箱:3697355039@qq.com

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com