Разработка прекращена.
Последняя версия freeDEXpano 2.3.5
Последняя версия freeDEXpano GUI 2.2.2
Последняя версия freeDEXover 1.2
Последняя версия freeDEXover GUI 1.1
Последняя версия freeDEXcompare 1.0


Информация: регистрация на форуме не обязательна! Можете оставлять свои сообщения указывая желаемый ник при наборе сообщения.

АвторСообщение





Сообщение: 22
Зарегистрирован: 07.06.11
ссылка на сообщение  Отправлено: 22.06.14 23:31. Заголовок: Плагин list_default_1. Перестановка выделения на пункт текущей сцены.


2 дня не могу победить проблему.

Я открываю панорамы, через плагин list, где пункты списка соответствуют разным сценам.
Один из пунктов списка открывает фотографию.
Я хочу, чтобы после закрытия фотографии, выделенным остался пункт списка, соответствующий текущей сцене.
У меня же выделенным остается пункт списка с фотографией.

Изображение закрываю по клику таким скриптом:

<script id="close_img" keep="1">

<pr id="vid_iz_okna" visible="0" />
<pr id="panorama_list" selection.row="@{@{api._scene}.class}"/>

</script>


К каждой сцене, в параметре class прописал соответствующий сцене номер списка вот так:

<scene id="scene3" class="2">
...
</scene>


Перепробовал уже кучу всяких разных комбинаций как это сделать, ни одна версия не работает.
Список файлов тут: https://dl.dropboxusercontent.com/u/24983400/tur_kvartira.zip


Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 1 [только новые]


администратор




Сообщение: 186
Зарегистрирован: 21.07.09
ссылка на сообщение  Отправлено: 23.06.14 08:21. Заголовок: У вашей проблемы гор..


У вашей проблемы гораздо более простое решение.

Добавим еще одну переменную
<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 и скрывать или отображать их по мере необходимости.
А все панорамы и изображения сделать в отдельных сценах.
Переход же между сценами задавать через список. Кстати, даже хотспоты могут указывать переход не на конкретную сцену, а на смену выбранного пункта списка. А по событию смены выбранного ряда списка можно производить стандартизированную и прописанную в одном месте операцию смены сцены.
Это позволит облегчить последующую модификацию тура под разное количество помещений и фотографий.

На самом деле вариантов очень много, в том числе и очень элегантных по реализации.

Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 1
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет