Форум » freeDEXpano » Cоздание сцены со статичной картинкой на основе плагина static » Ответить

Cоздание сцены со статичной картинкой на основе плагина static

AlexGr: Примерно пол года назад начал разбираться с вашей программой для создания туров,вообщем все получалось и даже приобрел у вас два плагина. Но тогда заказ сорвался и пришлось отложить в сторону изучение. На данный момент появился новый заказ. С графической частью у меня все готово, а вот с настройкой xml файла у меня опять проблемы и возникло ряд вопросов. Для планомерного построения я решил использовать в основе ваш шаблон, который вы присылали в предыдущих письмах (http://pitelino.ucoz.ru/images/panorama/blank.zip). Настраивать сцены на основе панорамных фото с использованием стандартного плагина pano_f10 я научился, ставить переходы по сценам так же. Но возникла не совсем стандартная задача(для меня скорее всего она только не стандартная!!) и появились проблемы! В первой сцене мне необходимо вывести обычный jpg файл, а поверх него несколько кнопок - презентационная сцена на основе одной картинки с объяснениями панорамы, где не нужно управление мышью, а картинка статична. В чем загвоздка: 1.Почему-то на основе данного шаблона не загружается плагин статик - ни 4, ни 5-я версия, возможно это связано с версией 3dex (так же не получилось ни в одном работающем примере загрузить плагин info_default_6)? Может подскажите ссылку на более свежий шаблон с настроенной сценой, где точно работают все последние плагины? 2.Так же вопрос по компоновки xml файла,т.к. я не программист, поэтому у меня и появился данный вопрос. Посоветуйте,как мне поступить, если не в каждой сцене мне надо видеть внизу кнопки управления(сцен более 20-ти), а иногда необходимо только например видеть кнопку полноэкранного режима - мне придется для каждой сцены отдельно прописывать все кнопки и их поведения, или есть возможность как в примере описать стандартные кнопки один раз, а потом какими-то средствами просто выключать ненужные в заданной сцене? Так же возможно необходимо будет менять место положения кнопок в разных сценах. Как это сделать грамотно с программной точки зрения? Плагин button_advanced_6 я приобретал.

Ответов - 16

Administrator: Почему-то на основе данного шаблона не загружается плагин статик - ни 4,ни 5-я версия, возможно это связано с версией 3dex (так же не получилось ни в одном работающем примере загрузить плагин info_default_6)? Я крайне рекомендую всегда использовать последние версии как основной программы freeDEXpano, так и плагинов. Так как в последних версиях исправляются ошибки и добавляется новая функциональность. Иногда это вызывает несовместимость старых версий, но новые гарантированно совместимы между собой. При этом, в большинстве случаев, старые файлы настроек должны работать без изменений. Может подскажите ссылку на более свежий шаблон с настроенной сценой, где точно работают все последние плагины? Последняя (на настоящий момент) версия freeDEXpano 2.3.5, скачать ее можно здесь: http://pano.3dex.ru/download.html В архиве есть в том числе и файл настроек, который, скорее всего, отличается от вашего лишь набором подключенных используемых плагинов. Скачайте их последние версии, пропишите их наименование и расположение в вашем файле настроек и все должно заработать. Файл настроек плагина info_default 6 можно скачать со страницы его описания: http://pano.3dex.ru/plugins/info_default/6/index.html (ссылка "XML файл настроек примера размещенного на этой странице") Если возникнут сложности, то выкладывайте архив с вашим не работающим проектом (изображения панорам могут быть условными), будем разбираться прямо на нем. Посоветуйте,как мне поступить, если не в каждой сцене мне надо видеть внизу кнопки управления(сцен более 20-ти), а иногда необходимо только например видеть кнопку полноэкранного режима - мне придется для каждой сцены отдельно прописывать все кнопки и их поведения, или есть возможность как в примере описать стандартные кнопки один раз, а потом какими-то средствами просто выключать ненужные в заданной сцене? Так же возможно необходимо будет менять место положения кнопок в разных сценах. Как это сделать грамотно с программной точки зрения? В fdp можно решить эту проблему массой различных способов, от указания элементов управления для каждой сцены или скрытия их по именам классов, до использования скриптов. Один из вариантов я опишу ниже. 1) В первой сцене (или любой другой, удобной вам) укажем все кнопки управления, используемые в туре. В дальнейшем мы будем просто скрывать не нужные и отображать необходимые в данный момент. Чтобы кнопки можно было использовать в любой сцене тура добавим в описание параметр keep="1". [pre2]<button id="bt_1" class="bt" keep="1" .../> <button id="bt_2" class="bt" keep="1" .../> <button id="bt_3" class="bt" keep="1" .../>[/pre2] 2) В этой же сцене укажем скрипты, которые скрывают или отображают тот или иной набор кнопок. Так же с параметром keep="1". [pre2]<script id="script_show_bt_1" keep="1"> <pr class="bt" visible="0"/> //для простоты вначале скрываем вообще все кнопки по имени класса "bt" <pr id="bt_1" visible="1"/> //делаем видимой только одну необходимую кнопку <pr id="bt_1" left="50" top="20"/> //дополнительно можем изменить любые параметры кнопки (в данном случае - положение). </script> <script id="script_show_bt_2_3" keep="1"> <pr class="bt" visible="0"/> //для простоты вначале скрываем вообще все кнопки по имени класса "bt" <pr id="bt_1" visible="1"/> //делаем видимой одну необходимую кнопку <pr id="bt_2" visible="1"/> //делаем видимой еще одну необходимую кнопку </script> <script id="script_show_bt_all" keep="1"> <pr class="bt" visible="1"/> //делаем видимыми все кнопки по имени класса "bt" </script>[/pre2] 3) При запуске каждой сцены тура (либо в любой необходимый вам момент) вызываем скрипт, который покажет нам только нужные кнопки. Для отдельной сцены можно использовать следующий код: [pre2]<script id="set_buttons" event="eventChangeSceneFinished"> <run id="script_show_bt_2_3"/> //запускаем скрипт, который покажет необходимые в данный момент кнопки </script>[/pre2] Точно так же можно вызывать скрипт в любом другом месте, например при нажатии на кнопку: [pre2]<button id="bt_1" class="bt" keep="1" action_up="script_show_bt_all" .../> //при нажатии на кнопку запустится скрипт, который отобразит вообще все кнопки.[/pre2] И опять таки, если возникнут сложности с конкретной реализацией, выкладывайте проект, попробуем написать реализацию совместно.

AlexGr: Не получается запустить плагин static. Вроде все делаю, как на странице настроек, но в файле открывается пустой экран, файл не находится, даже изменение цвета фона не дает никакого результата. Подскажите в чем проблема! Ссылка на архив с файлами: http://yadi.sk/d/50RF4kqg25Cqg

Administrator: В вашем файле настроек отключены два плагина info_default_6.swf и static_default_5.swf. Все дело в том, что вместо тега <plugin /> указан тег <plugin2 />. Я так поступаю для того, чтобы временно отключить не нужный плагин, без полного удаления строк. Но программа перестает определять подобную строку и, соответсвенно, не подключает плагины. Что нужно сделать: Замените строки [pre2] <plugin2 file="${plugins_path}info_default_6.swf"/> <plugin2 file="${plugins_path}static_default_5.swf"/>[/pre2] на [pre2] <plugin file="${plugins_path}info_default_6.swf"/> <plugin file="${plugins_path}static_default_5.swf"/>[/pre2] и все стразу заработает. При этом отобразится и окошко плагина info_default. А уж с его помощью, можно настроить и размеры изображения, причем интерактивно, вводя нужные значения прямо в туре.


AlexGr: Спасибо!Странно,я вроде там не ставил эти двойки-непонятно откуда они взялись! С этим буду разбираться,все заработало вроде!Подскажите еще по настройке плагина buttons-ставлю кнопку свою,а она не отбражается никак.Прикрепляю только файл настроек: http://yadi.sk/d/u3zyWr7d25Hio

AlexGr: Странно,но не могу понять,почему при динамическом изменении параметров при работе плагина info не сохраняются соответствующие настройки в файле настроек xml?Или это и не предусмотрено?

AlexGr: Есть ли параметр,который отвечает за размеры самого окна флэш ролика при его загрузке по умолчанию. Я хотел бы сделать его больше,или подогнать под свои пропорции-это возможно?

Administrator: Подскажите еще по настройке плагина buttons-ставлю кнопку свою,а она не отбражается никак. Она отображается, только вы задаете ее положение за пределами экрана. Чтобы убедиться в этом: 1) запустите ролик 2) в окошке info выберите закладку Childs. Там будет полный список всех отображаемых объектов. 3) найдите по id вашу кнопку. Скорее всего это id="btn_minus". 4) нажмите ПКМ по необходимому объекту и выберете пункт "Show Child Details" 5) посмотрите на значение параметров _x и _y (они показывают точное положение объекта в пикселах в настоящий момент). У вас _x="-1421". Это значит, что ваш объект находится на 1421 пиксел левее левого края ролика, поэтому и не виден. 6) Используя параметры left, left_px, top, top_px настройте положение объекта в ролике. Ну или можно сразу добавить эти параметры в описание объекта. Замените [pre2] <button id="btn_minus" class="btn" icon="images/icons/minus.png" alpha="65" action_down="m" action_over="m_over" action_out="m_out" action_up="m_up" left="-74" />[/pre2] на [pre2]<button id="btn_minus" class="btn" icon="images/icons/minus.png" alpha="65" action_down="m" action_over="m_over" action_out="m_out" action_up="m_up" top="100" top_px="-50" left="100" left_px="-74" />[/pre2] почему при динамическом изменении параметров при работе плагина info не сохраняются соответствующие настройки в файле настроек xml?Или это и не предусмотрено? К сожалению флеш ролик не может иметь доступ к локальной файловой системе и перезаписывать файлы. Поэтому с помощью info можно подбирать подходящее значение параметров, но прописвать их в файл придется все-таки вручную. Название и значение параметров можно копировать прямо из окон плагина info. Есть ли параметр,который отвечает за размеры самого окна флэш ролика при его загрузке по умолчанию. Я хотел бы сделать его больше,или подогнать под свои пропорции-это возможно? Если ролик встраивается в html страницу, то вы можете задавать ему любые размеры и пропорции, подробнее можно посмотреть здесь: http://pano.3dex.ru/fdp/2_3_0/embedding_flash_in_html.html Если ролик запускается как отдельное приложение, то первоначально его размеры фиксированны, но вы можете изменить их до любых удобных вам, потянув за край окна flash плеера.

AlexGr: При загрузке расширенной версии плагина hotspots так же проблемы!Возможно хотспоты просто нельзя прилеплять поверх объекта статик или непосредственно к нему?Т.е. в параметре "цель" обязательно должна быть прописана панорама(pano_f10),а не объект статик?Если все же можно прилепить хотспот на статичную картинку,то что прописывать в параметре "side", или просто его не прописывать? Мне необходимо повесить на статичное изображение хотспоты для перехода в другие сцены.В файле по ссылке можно посмотреть,чего я там понаписал!(файл тот же,что и в предыдущей ссылке): http://yadi.sk/d/u3zyWr7d25Hio

AlexGr: Administrator пишет: Она отображается, только вы задаете ее положение за пределами экрана. Вроде все перепробовал,ничего не получается с кнопкой.Вот скрин с экрана,поставил две кнопки-одна должна в верхнем левом углу отобразиться,другая в правом нижнем,ничего нет http://shot.qip.ru/00bBUp-1WuKdMBzj/]

Administrator: При загрузке расширенной версии плагина hotspots так же проблемы!Возможно хотспоты просто нельзя прилеплять поверх объекта статик или непосредственно к нему?Т.е. в параметре "цель" обязательно должна быть прописана панорама(pano_f10),а не объект статик?Если все же можно прилепить хотспот на статичную картинку,то что прописывать в параметре "side", или просто его не прописывать? Мне необходимо повесить на статичное изображение хотспоты для перехода в другие сцены.В файле по ссылке можно посмотреть,чего я там понаписал! Хотспоты предназначены исключительно для размещения на панорамах. Если вам необходим переход со статичного изображения к определенным панорамам необходимо использовать обычные кнопки! Итак, у вас есть некий фон. [pre2]<static id="static1" src="image.jpg" z_index="0" />[/pre2] Поверх него располагайте необходимое вам количество кнопок. Задавая на нажатия скрипты перехода в нужную вам сцену. [pre2] <scene id="init_scene"> //самая первая сцена, где отображется меню <button id="btn_minus" icon="btn.jpg" z_index="100" action_up="script_to_scene_1" keep="1" .../> //кнопка перехода в произвольную сцену. при нажатии на будет вызван скрипт script_to_scene_1 <script id="script_to_scene_1" keep="1"> //скрипт перехода в сцену с нужной панорамой. Таких скриптов может быть несколько, как и панорам. <scene id="scene_1"/> //переход в новую сцену </script> ... </scene> <scene id="scene_1"> //сцена, в которой отображается панорама <pano_f10 id="pano" .../> //объект панорамы. дополнительно в сцене могут быть любые другие объекты ... </scene>[/pre2] Вроде все перепробовал,ничего не получается с кнопкой.Вот скрин с экрана,поставил две кнопки-одна должна в верхнем левом углу отобразиться,другая в правом нижнем,ничего нет Насколько я вижу, возможно 2 причины: 1) А есть ли у вас эти изображения, которые вы хотите отобразить? Одна картинка должна находиться по следующему пути: images/icons/minus.jpg Вторая: minus.png Проверьте правильность путей и имен файлов, возможно там просто нет этих изображений, поэтому ничего и не отображается. Для понимания, все ли файлы загружены, можно использовать параметр show_errors="1" объекта loader. Если включить этот параметр, то если какой-либо запрашиваемый файл не найден или не загружен, то в ролике будет выведено сообщение об ошибке с указанием проблемного файла. Чтобы включить отображение ошибок, замените строку [pre2]<loader id="ldr" keep="1"/>[/pre2] на [pre2]<loader id="ldr" keep="1" show_errors="1"/>[/pre2] Подробнее можно посмотреть здесь: http://pano.3dex.ru/plugins/loader/3/index.html 2) Возможно кнопки показываются, но ПОД фоновой картинкой. Чтобы кнопки гарантировано были НАД фоном, необходимо задать им соответствующий z_index. Чем больше z_index, тем выше над другими объектами будет отображаться объект. Например: [pre2] <static id="static1" z_index="0" /> //фон будет ниже всех объектов <button id="btn_minus" z_index="100" /> //кнопка будет над другими объектами[/pre2]

AlexGr: Заработало!Ура!!!Оказалось дело в значениях z индексов,кнопки и правда оказывались под картинками!Спасибо большое за оперативные ответы,надеюсь не сильно вас потревожил!Буду дальше разбираться!

AlexGr: Новая проблема!!! У меня задача расставить 16 кнопок и зафиксировать их относительно изображения.Выровняв кнопку при полноэкранном режиме все выглядит как необходимо: http://shot.qip.ru/00bBUp-4WuKdMBzo/ Но изменяя размер окна,кнопка соответственно слетает с нужного места,так как она не масштабируется по примеру картинки(параметра по типу aspect я найти не смог,видимо его и нет): http://shot.qip.ru/00bBUp-4WuKdMBzp/ Видимо эта проблема решается с помощью скриптов для данных кнопок(в зависимости от размера окна кнопка меняет свой размер и положение следуя за своим необходимым местом положения).Подскажите,как это сделать?

AlexGr: *PRIVAT*

Administrator: Посмотрите данный код.В чем ошибка?Почему кнопка bt_left отображается в сцене,хотя написан скрипт срывающий ее Выглядит совершенно корректно. Скорее всего ошибка с вызовом самого скрипта или орфографическая, которую не видно сразу. Попробуйте в этот же скрипт вписать еще какое-либо действие, эффект от которого будет сложно не заметить. Если и новое действие не будет выполняться, то значит вызова скрипта не происходит. Видимо эта проблема решается с помощью скриптов для данных кнопок(в зависимости от размера окна кнопка меняет свой размер и положение следуя за своим необходимым местом положения).Подскажите,как это сделать? Пример с масштабированием фона и кнопок постараюсь прописать сегодня вечером.

AlexGr: Отправил вам на почту архив со сценой-так и не смог скрипт запустить.Подскажите,что можно еще попробовать сделать?

Administrator: Сделал пример масштабирования фона и наложенных на него кнопок. Скачать его можно по ссылке: http://downloads.3dex.ru/fdp_examples/fdp_2_3_5_example_scale.zip Как работает этот пример. Основным является скрипт, масштабирующий изображения: [pre2] <script id="script_on_resize" event="eventSizeChanged" keep="1"> //скрипт вызывается только при изменении размера ролика (событие eventSizeChanged) <pr id="horiz_aspect" set="#{@{api._width}/800}" /> //считаем во сколько раз ширина ролика больше ширины картинки. 800-ширина фоновой картинки (подставлять свое значение) <pr id="vert_aspect" set="#{@{api._height}/600}" /> //считаем во сколько раз высота ролика больше высоты картинки. 600-высота фоновой картинки (подставлять свое значение) <pr id="aspect" set="#{min(${horiz_aspect},${vert_aspect})}" /> //выбираем самое маленькое из отношений, чтобы фон всегда был меньше размера ролика. //Если необходимо, чтобы фон всегда был больше ролика, необходимо использовать функцию max(). <pr id="static1" left_px="#{floor(@{api._width}/2 -800*${aspect}/2)}" top_px="#{floor(@{api._height}/2 -600*${aspect}/2)}" scale="#{${aspect}*100}" /> //считаем где должна располагаться картинка относительно центра ролика // #{floor(@{api._width}/2 -800*${aspect}/2)} = ШИРИНА_РОЛИКА/2-ШИРИНА_КАРТИНКИ*МАСШТАБ/2. 800-ширина фоновой картинки (подставлять свое значение) // #{floor(@{api._height}/2 -600*${aspect}/2)} = ВЫСОТА_РОЛИКА/2-ВЫСОТА_КАРТИНКИ*МАСШТАБ/2. 600-высота фоновой картинки (подставлять свое значение) // scale="#{${aspect}*100} - масштабируем картинку, чтобы она растягивалась на весь ролик <pr id="bt_minus" left_px="#{floor(100*${aspect}+@{static1._x})}" top_px="#{floor(100*${aspect}+@{static1._y})}" scale="@{static1.scale}" /> //считаем где должны располагаться кнопки после масштабирования // #{floor(100*${aspect}+@{static1._x})} = X_КНОПКИ*МАСШТАБ+X_КАРТИНКИ. X_КНОПКИ-положение кнопки относительно левого края картинки до масштабирования (подставлять свое значение). // #{floor(100*${aspect}+@{static1._y})} = Y_КНОПКИ*МАСШТАБ+X_КАРТИНКИ. Y_КНОПКИ-положение кнопки относительно верхнего края картинки до масштабирования (подставлять свое значение). // scale="@{static1.scale}"- масштабируем кнопку, чтобы она изменилась в размере точно так же, как и картинка <pr id="bt_plus" left_px="#{floor(600*${aspect}+@{static1._x})}" top_px="#{floor(400*${aspect}+@{static1._y})}" scale="@{static1.scale}" /> //повторяем столько раз, сколько кнопок </script> <script id="script_on_start" event="eventChangeSceneFinished" keep="1"> <run id="script_on_resize" /> //один раз вызываем скрипт изменения размеров при запуске ролика </script>[/pre2] Кстати, вспомнил, что вы спрашивали, есть ли свежий работающий пример тура. Да, есть, его можно скачать по ссылке: http://downloads.3dex.ru/fdp_examples/fdp_2_3_5_example_tour.zip (46 МБ)



полная версия страницы