Пазлы для опытных пользователей (Advanced)
Используйте эти пазлы для реализации расширенных возможностей в ваших приложениях, таких как работа в сети, взаимодействие с кодом «Ява Скрипт», преобразование данных, сохранение/восстановление состояния и многое другое.
Содержание
Перечень пазлов
exec script
Этот пазл выполняет указанный javascript код. Он использует редактор Ace Editor для отображения и редактирования содержимого. Соответствующие сочетания клавиш можно посмотреть здесь: Default Keyboard Shortcuts.
Вы можете использовать следующие встроенные переменные:
- app - экземпляр приложения, для получения подробной информации смотрите App
- v3d - пространство имен v3d, которое содержит все модули движка
- VARS - доступ к переменным пазлам
- PROC - доступ к пазлам процедур
Особенности использования встроенных модулей для вкладки "Init" и других вкладок
- Встроенная переменная app недоступна для этого пазла, если она используется внутри вкладки Init, поскольку на этом этапе приложение еще не инициализировано должным образом.
- Переменные и процедуры, объявленные на вкладке Init, не могут быть доступны из других вкладок через VARS, PROC и наоборот.
call external function
Выполняет функцию, указанную в «Ява Скрипт»-коде приложения. По желанию передает параметры для использования в качестве аргументов функции.
Для того, чтобы добавить функцию в код «Ява Скрипт», откройте файл приложения .js (например, my_awesome_app.js, расположенный в verge3d/applications/my_awesome_app) любым текстовым редактором. Найдите "prepareExternalInterface" и добавьте свою функцию внутрь этого объявления (между фигурными скобками), чтобы она выглядела следующим образом:
function prepareExternalInterface(app) {
app.ExternalInterface.myJSFunction = function(numericArg, textArg) {
alert('Got some params from Puzzles: ' + numericArg + ' and ' + textArg);
}
}
load data
Попытка загрузить данные из указанного места. Пазлы в слоте "once ready do" интерпретируются независимо от того, была ли попытка успешной. Доступ к полученным данным можно получить с помощью пазла loaded data.
send data
Попытка отправить указанные данные с помощью асинхронного POST HTTP запроса. Пазлы в слоте "once ready do" интерпретируются независимо от того, была ли попытка успешной. Если есть какие-либо ответные данные, к ним можно получить доступ через пазл loaded data.
loaded data
Возвращает данные, полученные с помощью пазлов load data или send data.
read JSON
Интерпретирует текст (или «Дата УРЛ») как данные «Джейсон», которые обращаются к словарю.
read CSV
Интерпретирует текст (или ссылку «Дата УРЛ») как ЦСВ-файл. Возвращает список строк таблицы, причем каждая строка представлена в виде списка значений. Разделитель может быть выбран с помощью выпадающего списка, чтобы соответствовать настройкам экспорта ЦСВ-файла. Значение "От строки" указывает, сколько строк будет пропущено, начиная с верхней.
Доступ к строкам и значениям таблицы осуществляется по их числовым индексам, начиная с 0.
save state
Сохраняет состояние указанных объектов и/или значения переменных, заданных их именами. Объекты клонируются и сохраняются в памяти. Значения переменных извлекаются и сохраняются в памяти для каждого указанного имени переменной.
Если этот пазл вызывается несколько раз, состояния сохраняются в последовательности, чтобы можно было вернуться к любому предыдущему состоянию с помощью пазла undo state.
undo state
Восстанавливает состояние объектов и/или переменных, сохраненных с помощью пазла save state.
Если этот пазл вызывается несколько раз, состояния восстанавливаются из сохраненной последовательности (если таковая имеется), что позволяет вернуться к любому ранее сохраненному состоянию из стека.
all variable names
Возвращает список с именами всех переменных, используемых в пазлах.
variable value by name
Возвращает значение переменной, заданной ее именем. Этот пазл работает аналогично стандартному пазлу значение переменной, но не требует выбора переменной из предопределенного выпадающего меню.
JavaScript object
Возвращает заданный объект «Ява Скрипт».
С помощью этого пазла можно получить следующие объекты «Ява Скрипт»:
- window
- Возвращает объект верхнего уровня window как значение словаря.
- arguments
- Возвращает список аргументов текущей выполняемой функции. Может использоваться для получения аргументов процедур пазлов или дополнительных аргументов, передаваемых внутренним обратным вызовам пазлов (смотрите ниже).
- this
- Значение this «Ява Скрипт».
Параметр arguments можно использовать для получения дополнительных параметров пазла. Например, при использовании пазла when clicked можно получить внутреннее событие «Ява Скрипт», которое запускает логику пазла, используя первый аргумент обратного вызова, выполняемого за слотом do. В примере ниже мы используем это событие для получения координат X и Y указателя мыши:
Следующие пазлы поддерживают расширенные опции:
- when clicked, when hovered, when dragged — mouse или touch события, которые запускают пазлы в слотах do.
- after, set timer — идентификатор таймера, возвращаемый вызовом setInterval() пазлов.
- every frame — дельта-время и общее прошедшее время.
- event — объект события.
- on session event — WebXR объект события.
wait promise
Дождитесь разрешения или отклонения промиса и верните его значение (или причину отклонения) в пазле promise value.
Этот пазл может потребоваться для получения значения export to gltf и generate normal map. Будучи по своей природе асинхронными, эти пазлы не возвращают разрешенные значения немедленно. Вместо этого они возвращают значения промисов, которые разрешаются в пазлах, используемых в качестве входных данных. В некоторых редких случаях это разрешение не происходит. В этих случаях для разрешения значений промиса следует использовать wait promise.
promise value
Значение разрешенного промиса (в случае разрешенного промиса) или строка ошибки (в случае отклоненного промиса).
connector
Этот пазл позволяет соединять другие пазлы между собой, чтобы их было удобнее перемещать, удалять и использовать в других пазлах. Наиболее заметное применение - объединение пазлов load sound или load video в одну группу для организации предварительной загрузки медиаресурсов в вашем приложении.
Проблемы с пазлами?
Обращайтесь за помощью на наш форум!