Обмен технологиями

[Отечественный движок визуализации с открытым исходным кодом Meta2d.js] Перетаскивание

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Meta2d.js прослушивает события перетаскивания, поддерживает получение допустимых примитивных данных Json и создает примитивный объект на холсте.

Перетаскивание графической библиотеки

1. Создайте панель инструментов графической библиотеки.

Создайте html-элемент панели инструментов графической библиотеки и привяжите событие перетаскивания или событие касания.

  1. <div v-for="item in list" draggable="true"
  2. ondragstart="onDragstart($event, item.data)"
  3. onclick="onTouchstart($event, item.data)"
  4. ontouchstart="onTouchstart($event, item.data)">
  5. <img :src="item.svg" />
  6. </div>

Копировать

2. Передача данных

  1. // 示例pen
  2. const pen = {
  3. name: "rectangle",
  4. text: "矩形",
  5. width: 100,
  6. height: 100,
  7. };
  8. // 拖拽添加图元
  9. onDragstart = (e, pen) => {
  10. e.dataTransfer.setData("Text", JSON.stringify(pen));
  11. };
  12. // 支持单击添加图元
  13. import { deepClone } from "@meta2d/core";
  14. onTouchstart = (e, pen) => {
  15. meta2d.canvas.addCaches = deepClone([pen]);
  16. };

Копировать

Перетащите изображения рабочего стола

Способ 1: URL-адрес загрузки

Конфигурация внешнего интерфейса: мета2d.store.options.uploadUrl.

Конфигурация бэкэнда:

  1. Имя атрибута принятого файла formData должно быть file
  2. В ответе, возвращаемом серверной частью, атрибут первого уровня должен содержать URL-адрес в качестве адреса предварительного просмотра изображения.
  1. new Meta2d("meta2d", {
  2. uploadUrl: "/api/image",
  3. uploadHeaders: {
  4. token: "xxx"
  5. },
  6. uploadParams: {
  7. // 参数
  8. public: true,
  9. },
  10. });

Копировать

Способ 2: загрузитьFn

Настройте мета2d.store.options.uploadFn. Этот метод представляет собой функцию обратного вызова, а параметр — файл, то есть файл изображения. После загрузки на бэкэнд необходимо вернуть доступный URL-адрес изображения.

uploadFn по умолчанию преобразует изображения в формат Base64, в результате чего загруженный файл JSON имеет большой размер и не может быть повторно использован после копирования изображения.Рекомендуется передать изображение на серверную часть и использовать URL-адрес для доступа к изображению.

  1. new Meta2d("meta2d", {
  2. uploadFn: async (file: File) => {
  3. // 伪代码,复制后根据实际情况使用
  4. const formData = new FormData();
  5. formData.append("file", file);
  6. const res = await axios.post(url, file);
  7. return res.url;
  8. },
  9. });

Копировать

Внутренний открытый исходный код

LeWule посвящает себя исследованиям и разработкам, является независимым и контролируемым и продолжает совершенствовать и оптимизировать.

Гитхаб:GitHub — le5le-com/meta2d.js: Meta2d.js — это обмен данными в реальном времени и интерактивный веб-движок 2D. Разработчики могут создавать веб-SCADA, IoT, цифровые двойники и т. д. в режиме реального времени. обмен данными и интерактивный 2D-движок, который можно использовать в веб-конфигурации, Интернете вещей, цифровых двойниках и других сценариях.

Гите: Meta2d.js: Meta2d.js — это обмен данными в реальном времени и интерактивный веб-2D-движок. Разработчики могут создавать веб-SCADA, Интернет вещей, цифровые двойники и т. д. Его можно использовать в веб-конфигурации, Интернете вещей, цифровых двойниках. и другие сценарии.

Приветственная поддержка Star, Fork и блога