krpano | Как скрыть панель с превью-изображениями из 3D-тура?

krpano | Как скрыть панель с превью-изображениями из 3D-тура?

Иногда в 3D-туре необходимо скрывать панель с «превьюшками» панорам из нижнего меню управления просмотра. Как это сделать? (How to remove a panel with a preview in krpano?)

В стандартном файле vtourskin.xml прописан специальный элемент экшн (action), который умеет скрывать панель управления туром. Экшн называется skin_hideskin и его код выглядит так:

<action name="skin_hideskin" scope="local" args="hidetimemode">
   calc(hidetime, hidetimemode == 'instant' ? 0.0 : 0.5);

   callwith(layer[skin_scroll_window], skin_calc_opened_closed() );
   callwith(layer[skin_splitter_bottom], skin_calc_opened_closed() );
   callwith(layer[skin_control_bar], skin_calc_opened_closed() );

   if(layer[skin_map].state != 'closed', skin_showmap(false); if(hidetime GT 0, wait(0.40)); );
   if(layer[skin_thumbs].state != 'closed', skin_showthumbs(false); if(hidetime GT 0, wait(0.25)); );

   tween(layer[skin_scroll_window].y, get(layer[skin_scroll_window ].y_closed), get(hidetime));
   tween(layer[skin_splitter_bottom].y, get(layer[skin_splitter_bottom].y_closed), get(hidetime));
   tween(layer[skin_control_bar].y, get(layer[skin_control_bar ].y_closed), get(hidetime));

   set(layer[skin_btn_prev_fs].enabled, true);
   set(layer[skin_btn_next_fs].enabled, true);
   tween(layer[skin_btn_prev_fs].x|layer[skin_btn_prev_fs].alpha, 0|0.25, get(hidetime));
   tween(layer[skin_btn_next_fs].x|layer[skin_btn_next_fs].alpha, 0|0.25, get(hidetime));

   if(layer[skin_logo], tween(layer[skin_logo].alpha, 0.0, 0.5, default, set(layer[skin_logo].visible,false)); );

   stopdelayedcall(skin_btn_show_alpha);
   set(layer[skin_btn_show].visible, true);
   delayedcall(skin_btn_show_alpha, get(hidetime), tween(layer[skin_btn_show].alpha, 0.25, 0.25); );
</action>

Говоря языком программирования JavaScript этот экшн по сути является функцией, которая меняет состояние слоя под названием skin_btn_hide:

<layer name="skin_btn_hide" style="skin_base|skin_glow" crop="0|448|64|64" align="right" x="50" y="0" scale="0.5" onclick="skin_hideskin()" />

По умолчанию этот слой хранит в себе кнопку, которая напоминает полосочку с треугольничком, направленным вниз:

Кнопка скрывания панели управления туром - krpano
Кнопка скрывания панели управления туром — krpano

Стандартное действие клика onclick по этой кнопке приводит к вызову функции skin_hideskin():

onclick="skin_hideskin()"

После вызова функции, меню управления 3D-туром скрывается.

Решение задачи

Если мы хотим при первой загрузке тура сразу убирать меню управления панорам, тогда нам нужно использовать эту функцию для события «стартования» первой панорамы в туре. Это событие называется onstart:

onstart="skin_hideskin()"

//примерный код сцены в файле tour.xml

<scene name="scene_01" title="01" onstart="skin_hideskin()"  thumburl="panos/07.tiles/thumb.jpg" lat="" lng="" heading="">

Теперь после загрузки тура панель с превью-изображениями будет скрыта, пока пользователь не нажмёт на еле заметный полупрозрачный белый треугольничек внизу посередине экрана:

Полупрозрачный белый треугольничек внизу посередине окна тура - krpano
Полупрозрачный белый треугольничек внизу посередине окна тура — krpano

Информационные ссылки

Документация KRPANO — Элемент «<scene>» — https://krpano.com/docu/xml/#scene

Документация KRPANO — Атрибут «onstart» элемента «<scene>» — https://krpano.com/docu/xml/#scene.onstart

Обработчик события onstart для элеента scene - krpano
Обработчик события onstart для элеента scene — krpano

Событие «onstart» — здесь можно определить любые действия/функции (actions/functions), которые будут вызываться «при запуске» просмотра панорамы/сцены (pano/scene).

Поделись страницей. Расскажи обо мне.