Мольберт JS - хранение графики формы в базе данных - PullRequest
0 голосов
/ 14 марта 2020

Я использую Easel JS для проекта, и мне нужно хранить детали различных объектов Shape в базе данных, чтобы их можно было перерисовать в другое время. В моем проекте настроена сцена, поэтому я могу перетаскивать прямоугольник, который сохраняется в базе данных после завершения. Я намерен сделать его пригодным для рисования полигонов также. В моей базе данных есть таблица с именем 'polyshapes', в которой хранятся Shape.id, Shape.name, Shape.x, Shape.y, Shape.rotation. У этого также есть поле, названное 'графикой', где я могу сохранить некоторую текстовую строку, представляющую объект Shape.graphics. Когда я рисую прямоугольник, я могу сохранить строку «графика», используя: JSON .stringify (Myshape.graphics).

Когда я загружаю эту фигуру из базы данных, я создаю новый объект create js .Shape (), а затем использую Myshape.graphics = JSON .parse (graphicsString) для загрузки графики. К сожалению, это не работает, так как не загружает необходимые функции внутри объекта.

Я также пытался просто по отдельности обновить некоторые специфические c графические атрибуты, такие как «команда», «_инструкции», «_stroke», «_strokeStyle». Но я все еще могу получить необходимый график c для повторного рисования.

В идеале, мне нужно было бы только сохранить атрибут «инструкции» Shape.graphics, когда я перетаскиваю его, а затем при загрузке из БД я бы просто использовал метод для повторного создания эти графики, когда предоставляются данные «инструкции». Однако я не вижу подходящего метода для этого.

Я также изучил графический метод decodePath (). Это было бы полезно, за исключением того, что не существует обратного метода encodePath (), который позволил бы мне его сериализовать.

Как я могу сохранить данные Shape.graphics в базе данных, а затем вызвать их позже для перестройки нового объекта Shape ()?

Спасибо, Хью.

...