Skip to content

API 文档

本文档详细说明 Meta2D 的核心 API 使用方法。每个方法都包含参数说明和示例代码。

核心方法

setOptions

设置引擎选项

参数说明

参数名类型必填说明
optionsOptions可视化引擎选项

示例

typescript
// 设置画布选项
meta2d.setOptions({
  grid: true,
  rule: true,
  // 其他选项...
});

getOptions

获取当前引擎选项

参数

示例

typescript
const options = meta2d.getOptions();
console.log('Current options:', options);

resize

调整画布大小

参数说明

参数名类型必填默认值说明
widthnumber-新的宽度(不传则自适应)
heightnumber-新的高度(不传则自适应)

示例

typescript
// 1. 自动适应容器大小
meta2d.resize();

// 2. 设置固定尺寸
meta2d.resize(1000, 800);

// 3. 只设置宽度,高度自适应
meta2d.resize(1200);

绘图控制

render

重绘画布

参数

参数名类型说明
dirtynumber | boolean重绘控制 空: 当前时间重绘,true: 等同于空,false: 仅在需要时重绘,number: 延迟重绘(毫秒)
TypeScript
// 多次频繁调用,有性能保护,且显示最新
for (let i = 0; i < 100; i++) {
  meta2d.render();
}

// 修改过数据,确认数据已经dirty
meta2d.render();

事件处理

emit

发送自定义消息

参数

参数名类型说明
eventTypestring | symbol消息名称
handlerFunction消息处理函数
TypeScript
meta2d.emit('myMessage', { a: 1 });

on

订阅消息

参数

参数名类型说明
eventTypestring | symbol消息名称
handlerFunction消息处理函数
TypeScript
const fn = (event, data) => {};
meta2d.on('event', fn);
// 不用时,又不销毁meta2d实例,记得取消订阅。

off

取消订阅消息

参数

参数名类型说明
eventTypestring | symbol消息名称
handlerFunction消息处理函数
TypeScript
const fn = (event, data) => {};
// 订阅
meta2d.on('event', fn);

// 取消订阅
meta2d.off('event', fn);

画笔查询与操作

find

根据 id 或 tag 查找画笔

参数

参数名类型说明
idOrTagstringid 或 tag
TypeScript
// 查找所有匹配的画笔
const pens = meta2d.find('tag1');

findOne

根据 id 或 tag 查找画笔,使用 Array.find,找到一个即返回

参数

参数名类型说明
idOrTagstringid 或 tag
TypeScript
// 查找第一个匹配的画笔
const pen = meta2d.findOne('pen-id');

getPenRect

获取 Pen 相对标尺原点的坐标区域

参数

参数名类型说明
penPen画笔对象
TypeScript
const rect = meta2d.getPenRect(pen);

setPenRect

设置 Pen 相对标尺原点的坐标区域

参数

参数名类型说明
penPen画笔对象
rectRect区域
renderboolean是否立刻重绘。默认是 true
TypeScript
meta2d.setPenRect(pen, { x: 200, y: 200, width: 100, height: 100 });

动画控制

startAnimate

开始播放动画

参数说明

参数名类型必填默认值说明
idOrTagOrPensstring | 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

暂停播放动画

参数说明

参数名类型必填默认值说明
idOrTagOrPensstring | string[] | Pen | Pen[]-要暂停的画笔ID、标签或画笔对象数组,不传则暂停所有动画

示例

typescript
// 1. 暂停指定ID的动画
meta2d.pauseAnimate('pen-123');

// 2. 暂停所有动画
meta2d.pauseAnimate();

stopAnimate

停止播放动画并重置到初始状态

参数说明

参数名类型必填默认值说明
idOrTagOrPensstring | string[] | Pen | Pen[]-要停止的画笔ID、标签或画笔对象数组,不传则停止所有动画

示例

typescript
// 1. 停止指定ID的动画
meta2d.stopAnimate('pen-123');

// 2. 停止所有动画
meta2d.stopAnimate();