Приложение 1. Поиск ошибок в коде krpano

Частично данная тема была рассказана во второй части уроков по krpano. Но ввиду частых вопросов на эту тематику, в данной статье рассмотрим его обстоятельней.

Неизбежно когда-нибудь возникают ошибки в программе, и нам необходимо найти в каком месте она произошла.

В данном случае нам поможет функция trace(). Напомню, что она выводит значение переменных или текст. Чтобы его увидеть, вызовете лог-панель при проигрывании тура (нажмите клавишу - английскую O).

Например:

Trace (qwerty);

Если вы раньше описывали qwerty как переменную, то krpano выведет ее значение. Если же нет, то просто будет выведена строка “qwerty”.

Чтобы всегда видеть лог панель, можно воспользоваться функцией showlog(true), где true- вывести лог панель; false – не выводить панель.

Чтобы определить, где произошла ошибка можно поставить несколько команд Trace(какой-нибудь текст), и определить таким образом в какой области происходит ошибка.

Для примера, скачайте xml-код от 6 урока по крпано, где намерено сделана ошибка. Также в коде каждый из плагинов оформлен в виде одной строки и в экшен scene_options помещена функция showlog(true);

Ошибка заключается в том, что при закрытие картинки помощи не исчезает кнопка с крестиком.

Видно, что в код экшена hideintro добавлены также 4 команды: trace(1); trace(2); trace(3); trace(4); Теперь если запустить этот код в виртуальном туре от 6-го урока и закрыть в нем помощь, то вы увидите следующее:

Поиск ошибок в krpano

Как видно, krpano написал только 1,2, а 3 и 4 отсутствуют. Следовательно, ошибка происходит между trace(2); и trace(3);

Теперь, если присмотреться, видно что в 30 строке

set(plugin[intro].enabled, false)

пропущена точка с запятой. После ее добавления ошибка будет устранена. 

Также trace() часто используется, чтобы проверить значение переменной или атрибута тега. Если вы сомневаетесь, что у какого-то плагина, например, атрибут x=20, то просто напишите строку:

Trace(plugin[название плагина].x);

 

Когда тур отказывается работать 

Иногда тур вообще отказывается работать и выводится ошибка:

FATAL: file… XML parser error


В этом случае вы ошиблись в синтаксисе кода. Чаще всего это связано с лишним или отсутствующем знаком тега  “>” или же знака двойных кавычек. В результате xml parser (анализатор кода xml) не может определиться, где заканчивается экшен или комментарий.

Krpano в данном случае не дает указания, где именно произошла эта ошибка. Но тем не менее чаще всего ее просто вычислить. Загрузите xml файл в любой браузер и он укажет в какой области программы она была найдена.

Иногда случается, что виртуальный тур на компьютерах работает, а на айпадах и айфонах нет, и выскакивает такая же ошибка. Один из наиболее частых случаев: случайно был написан один и тот же атрибут тега дважды

Например, из-за этой строки произойдет именно такой случай:

<plugin name="onrotate" y="10" align="bottomright" keep="true" y="10"...

К счастью эта ошибка также хорошо отлавливается с помощью браузеров.

Для проигрывания на i-устройствах используется проигрыватель не на технологии flash, а на html5 (дроплетами генерируется файл с расширением js). А данный проигрыватель более критичен к правильности xml-кода.

Удачный туров и поменьше ошибок в них.


Все статьи по работе с krpano


Остались вопросы?


Задайте их на форуме