2013-07-01 58 views
0

Я вижу следующее поведение в браузере на основе WebKit на встроенном устройстве: после появления ошибки на холсте (я не уверен, что именно о характере ошибки, но некоторые раз он выглядит так, как если бы он не рисовал, потому что рисунок был слишком медленным ...), сам холст становится устаревшим. То есть никакие команды рисования не будут влиять на изображение (ошибка попадает в код JavaScript).Сбросить холст после ошибки

В настоящее время я не могу исправить ошибку - как я могу заставить холст обновиться, как в случае восстановления после ошибки рисования?

+0

Как мы должны помочь, если вы не разместите сообщение об ошибке, которое «попало в код JavaScript»? – Saturnix

+0

@Saturnix Ошибка не имеет значения. Это может быть что угодно. Важно то, что холст становится устаревшим/не может быть затронут при рисовании/стирании. –

+0

это не так - ошибка JS прервет вашу возможность рисования на холсте. – Saturnix

ответ

0

Вы можете попытаться заставить повторную инициализацию что-то вроде этого:

try { 

//to catch the error you recevie 
} catch(err) { 

    var tempHeight = canvas.height; 
    canvas.height = 0; 
    canvas.height = tempHeight; 
} 

(некоторые сказали бы просто установить canvas.height = canvas.height (или ширину), но это не работает во всех браузерах).

Другой подход заключается в том, чтобы отсоединить сам элемент холста, создать новый элемент и прикрепить его к исходному родительскому объекту с помощью attachChild.

Однако, это хаки, и, надеюсь, ошибка, которую вы видите, будет удалена в следующем обновлении.

+0

Хм ... интересно, попробуй, спасибо! –

+0

Ну, к сожалению, только создание нового элемента canvas работает до сих пор :(Но спасибо за предложение больше идей! –

Смежные вопросы