nativescirpt-canvas с Angular — как перерисовать Canvas?

Я хочу написать простое приложение «компас» с NativeScript, забавный проект, который нужно отправить на GitHub. Часть GPS готова. Я использую это: https://market.nativescript.org/plugins/nativescript-canvas, приложение создано с помощью «tns create --ng». Холст рисуется один раз, работает, отлично! Но я хочу его постоянно перерисовывать с данными из GPS и понятия не имею как.

Я попытался сохранить значение «холст» в переменной экземпляра моего компонента, я имею в виду значение, которое приходит с событием «рисовать» -> событие: {холст: холст} Но повторное использование значения разрушает все приложение, это на самом деле «неопределенный», чего я не понимаю с моим ограниченным знанием Angular/TypeScript. Любой намек, как получить «холст», где мне нравится? Репозиторий git с рабочим примером?

Я следовал инструкции для Angular:

и рисовать (событие: {холст: Холст}) {...

развертывание его в эмуляторе Android заканчивается ошибкой (см. Ниже), но добавление пробела в любом месте кода вызывает повторное развертывание («обнаружено изменение»), которое развертывается нормально. Таким образом, это, конечно, не может быть развернуто на реальном устройстве. Но сначала мне нужно обновить холст :) спасибо.

System.err: java.lang.RuntimeException: Unable to start activity ComponentInfo{org.nativescript.HelloWorld/com.tns.NativeScriptActivity}: com.tns.NativeScriptException:
System.err: Calling js method onCreate failed
System.err:
System.err: Error: Main entry is missing. App cannot be started. Verify app bootstrap.
System.err: File: "file:///data/data/org.nativescript.HelloWorld/files/app/vendor.js, line: 21886, column: 20
System.err:
System.err: StackTrace:
System.err:     Frame: function:'push.../node_modules/tns-core-modules/ui/frame/frame.js.ActivityCallbacksImplementation.setActivityContent', file:'file:///data/data/org.nativescript.HelloWorld/files/app/vendor.js', line: 21886, column: 27
System.err:     Frame: function:'push.../node_modules/tns-core-modules/ui/frame/frame.js.ActivityCallbacksImplementation.onCreate', file:'file:///data/data/org.nativescript.HelloWorld/files/app/vendor.js', line: 21731, column: 14
System.err:     Frame: function:'push.../node_modules/tns-core-modules/ui/frame/activity.js.NativeScriptActivity.onCreate', file:'file:///data/data/org.nativescript.HelloWorld/files/app/vendor.js', line: 19544, column: 25

person Bogusz Jeliński    schedule 18.07.2019    source источник
comment
Дамп ошибок запутан, поэтому основным сообщением было «Основная запись отсутствует». И тег был удален во время отправки моего вопроса, поэтому, возможно, способ - я поместил CanvasView width=100 height=100 (draw)=draw($event)... в XML моего углового шаблона HelloWorld, сгенерированного начальным 'create '.   -  person Bogusz Jeliński    schedule 18.07.2019


Ответы (1)


Параметр event также имеет свойство object, которое представляет собой canvasView.

Для перерисовки можно позвонить

event.object.redraw()

Затем ваша функция рисования будет вызвана снова, и вы сможете обработать обновление холста.

person dukewan    schedule 09.07.2020