У вашей проблемы гораздо более простое решение.
Добавим еще одну переменную
<variables
...
last_scene_num="0"
...
/>
В ней мы будем хранить информацию о последней открытой сцене.
Изменим структуру списка следующим образом
<list_default id="panorama_list"
...
default.is_img="0" on_selection_changed="script_update_list" column_id="zagolovok"
...>
<row id="id1" nomer="init_scene" zagolovok="Коридор"/>
<row id="id2" nomer="scene2" zagolovok="Ванная"/>
<row id="id3" nomer="scene3" zagolovok="Кухня"/>
<row id="id4" nomer="scene4" zagolovok="Маленькая комната"/>
<row id="id5" nomer="scene5" zagolovok="Зал"/>
<row id="id6" nomer="scene6" zagolovok="Спальня"/>
<row id="id7" nomer="scene7" zagolovok="Лоджия"/>
<row id="id8" nomer="" zagolovok="Вид из окна" is_img="1"/>
</list_default>
Мы добавили параметр is_img, в котором будем ставить единичку, если это изображение, а не сцена.
Для всех сцен задаем значение по умолчанию: default.is_img="0"
И правим скрипты, вызываемые при изменении сцены:
<script id="script_update_list" keep="1" if="|@{panorama_list.row[@{panorama_list.selection.row}].is_img}|stringInequal|1|" action_else="script_show_img">
<pr id="vid_iz_okna" visible="0"/>
<scene id="@{panorama_list.row[@{panorama_list.selection.row}].nomer}"/>
<pr id="last_scene_num" set="@{panorama_list.selection.row}"/>
<pr id="info" text="@{panorama_list.row[@{panorama_list.selection.row}].zagolovok}"/>
</script>
<script id="script_show_img" keep="1">
<pr id="vid_iz_okna" visible="1"/>
<pr id="info" text="@{panorama_list.row[@{panorama_list.selection.row}].zagolovok}"/>
</script>
Ключевым здесь является использование параметра if (если). Если выполняется условие (is_image не равно 1), то меняем сцену и запоминаем ее номер.
Если условие не выполняется, то запускаем скрипт показа изображения.
При закрытии изображения переходим в сцену, номер которой сохраненили в переменной last_scene_num.
<script id="close_img" keep="1">
<pr id="vid_iz_okna" visible="0" />
<pr id="panorama_list" selection.row="${last_scene_num}"/>
</script>
Скачать файл настроек Подробнее о условиях при выполнении скриптов можно прочитать здесь:
Описание настроек freeDEXpano Раздел "Скрипты"
Так же, хотел бы сделать несколько замечаний по структуре вашего проекта.
Насколько я понимаю, вы хотите сделать унифицированный тур для демонстрации нескольких комнат и нескольких картинок.
Для облегчения настроек, я бы порекомендовал вам, все постоянные скрипты и кнопки управления задавать в init_scene и скрывать или отображать их по мере необходимости.
А все панорамы и изображения сделать в отдельных сценах.
Переход же между сценами задавать через список. Кстати, даже хотспоты могут указывать переход не на конкретную сцену, а на смену выбранного пункта списка. А по событию смены выбранного ряда списка можно производить стандартизированную и прописанную в одном месте операцию смены сцены.
Это позволит облегчить последующую модификацию тура под разное количество помещений и фотографий.
На самом деле вариантов очень много, в том числе и очень элегантных по реализации.