API 文档
本文档详细说明 Meta2D 的核心 API 使用方法。每个方法都包含参数说明和示例代码。
核心方法
setOptions
设置引擎选项
参数说明
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| options | Options | 是 | 可视化引擎选项 |
示例
typescript
// 设置画布选项
meta2d.setOptions({
grid: true,
rule: true,
// 其他选项...
});getOptions
获取当前引擎选项
参数 无
示例
typescript
const options = meta2d.getOptions();
console.log('Current options:', options);resize
调整画布大小
参数说明
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| width | number | 否 | - | 新的宽度(不传则自适应) |
| height | number | 否 | - | 新的高度(不传则自适应) |
示例
typescript
// 1. 自动适应容器大小
meta2d.resize();
// 2. 设置固定尺寸
meta2d.resize(1000, 800);
// 3. 只设置宽度,高度自适应
meta2d.resize(1200);绘图控制
render
重绘画布
参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| dirty | number | boolean | 重绘控制 空: 当前时间重绘,true: 等同于空,false: 仅在需要时重绘,number: 延迟重绘(毫秒) |
TypeScript
// 多次频繁调用,有性能保护,且显示最新
for (let i = 0; i < 100; i++) {
meta2d.render();
}
// 修改过数据,确认数据已经dirty
meta2d.render();事件处理
emit
发送自定义消息
参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| eventType | string | symbol | 消息名称 |
| handler | Function | 消息处理函数 |
TypeScript
meta2d.emit('myMessage', { a: 1 });on
订阅消息
参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| eventType | string | symbol | 消息名称 |
| handler | Function | 消息处理函数 |
TypeScript
const fn = (event, data) => {};
meta2d.on('event', fn);
// 不用时,又不销毁meta2d实例,记得取消订阅。off
取消订阅消息
参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| eventType | string | symbol | 消息名称 |
| handler | Function | 消息处理函数 |
TypeScript
const fn = (event, data) => {};
// 订阅
meta2d.on('event', fn);
// 取消订阅
meta2d.off('event', fn);画笔查询与操作
find
根据 id 或 tag 查找画笔
参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| idOrTag | string | id 或 tag |
TypeScript
// 查找所有匹配的画笔
const pens = meta2d.find('tag1');findOne
根据 id 或 tag 查找画笔,使用 Array.find,找到一个即返回
参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| idOrTag | string | id 或 tag |
TypeScript
// 查找第一个匹配的画笔
const pen = meta2d.findOne('pen-id');getPenRect
获取 Pen 相对标尺原点的坐标区域
参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| pen | Pen | 画笔对象 |
TypeScript
const rect = meta2d.getPenRect(pen);setPenRect
设置 Pen 相对标尺原点的坐标区域
参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| pen | Pen | 画笔对象 |
| rect | Rect | 区域 |
| render | boolean | 是否立刻重绘。默认是 true |
TypeScript
meta2d.setPenRect(pen, { x: 200, y: 200, width: 100, height: 100 });动画控制
startAnimate
开始播放动画
参数说明
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| idOrTagOrPens | string | string[] | Pen | Pen[] | 否 | - | 要播放动画的画笔ID、标签或画笔对象数组,不传则播放所有自动播放的动画 |
示例
typescript
// 1. 播放指定ID的动画
meta2d.startAnimate('aaa');
// 2. 播放多个画笔的动画
meta2d.startAnimate(['pen-123', 'pen-456']);
// 3. 播放指定画笔对象的动画
meta2d.startAnimate(pen);
// 4. 播放多个画笔对象的动画
meta2d.startAnimate([pen1, pen2]);
// 5. 播放所有自动播放的动画
meta2d.startAnimate();pauseAnimate
暂停播放动画
参数说明
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| idOrTagOrPens | string | string[] | Pen | Pen[] | 否 | - | 要暂停的画笔ID、标签或画笔对象数组,不传则暂停所有动画 |
示例
typescript
// 1. 暂停指定ID的动画
meta2d.pauseAnimate('pen-123');
// 2. 暂停所有动画
meta2d.pauseAnimate();stopAnimate
停止播放动画并重置到初始状态
参数说明
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| idOrTagOrPens | string | string[] | Pen | Pen[] | 否 | - | 要停止的画笔ID、标签或画笔对象数组,不传则停止所有动画 |
示例
typescript
// 1. 停止指定ID的动画
meta2d.stopAnimate('pen-123');
// 2. 停止所有动画
meta2d.stopAnimate();