Взаимодействовать с SVG в Pharo?

Я хочу получить очень простое взаимодействие с SVG, загруженным через Афины в Фаро, используя Morphic. Этот пример показывает, что я ищу. я использовал

(ASVGMorph fromFile: 'lion.svg') drawOn: Display getCanvas

но щелчок SVG делает картинку исчезающей. Однако все примеры, которые я видел, использовали веб-браузер. Возможно ли это с помощью Афин? Есть ли другие работы в этой области?

2 ответа

Это потому, что вы рисуете его на холсте дисплея, который обновляется каждый раз... так естественно, что вы потеряли его...

Что вам нужно сделать, это:

(ASVGMorph fromFile: 'lion.svg') openInWorld.

или лучше, вы, вероятно, хотите поместить его в окно:

(ASVGMorph fromFile: 'lion.svg') openInWindow.

в конце вы, вероятно, захотите сделать это внутри какого-то другого созданного вами морфа, но отладка любого из приведенных выше решений покажет вам, как действовать:)

Да, как указал Эстебан, чтобы сохранить морфинг на рабочем столе, вы должны добавить его в мир, то есть использовать

openInWorld или #openInWindow.

ASVGMorph, однако, очень прост и не предназначен для обслуживания всех возможных вариантов использования. Для более сложных применений предпочтительно использовать экземпляр ASVGRoot и рисовать его в своем собственном морфинге или создавать с другими чертежами.

Другие вопросы по тегам