Создание бумажных js объектов, отделенных от PaperScope - PullRequest
0 голосов
/ 05 апреля 2020

Я надеюсь, что возможно создать, скажем, Paper.Path объект, который не прикреплен к области действия . Причина, по которой мне нужно это сделать, заключается в том, что у меня есть несколько классов синтаксических анализаторов, работа которых состоит в том, чтобы генерировать геометрию из файла gerber, они не должны иметь никакого влияния на PaperScope * canvas. Простое разделение интересов.

Например: (этот код не будет работать)

import paper, {Path, Point} from 'paperjs';

let path = new Path([new Point(100, 100), new Point(200, -50)]);

paper.addPath(path); <- this doesn't exist but you get the point.

Нет очевидных способов go об этом, и статья js Документы, кажется, рекламируют эту «умную область видимости» как особенность, но работать с ней было действительно трудно ...

1 Ответ

2 голосов
/ 05 апреля 2020

Вы можете настроить Paper. js, чтобы он не вставлял вновь созданный в сцену по умолчанию. Вы должны установить paper.settings.insertItems = false при инициализации приложения (см. Документацию ).

Если вы хотите, чтобы некоторые элементы были частью сцены, а другие нет, вы можете лучше контролировать, вставлены они или нет, передав параметр insert: true/false в конструктор.
Здесь эскиз, демонстрирующий это поведение.

// Switch this to true to see the difference.
const INSERT = false;

const circle = new Path.Circle({
    center: view.center,
    radius: 50,
    fillColor: 'orange',
    insert: INSERT
})
...