Домой › Форумы › Общие вопросы › Параметры от родительской страници, url на конфигурацию
- В этой теме 2 ответа, 2 участника, последнее обновление 1 месяц назад сделано
Alexander Kovelenov.
-
АвторСообщения
-
17 января, 2026 в 11:58 #20293
3dma
CustomerВопрос: Как можно отследить когда 3д полностью загрузилось, и передать «сигнал» родительскому интерфейсу для дальнейшей работы скрипта?
Суть проблемы которая рандомно возникает- после загрузки иногда модель не реагирует на нажатия кнопок внешнего интерфейса, именно что иногда
На видео вначале модель не реагирует на интерфейс, а следующая уже норм https://1drv.ms/v/c/e2089469a3fa305a/IQB9qUT8Guz3QLaV0in737D3Aewk_FY5iRLhBG6OdRXHahQ?e=5jfuOgПри старте у нас работает логика что «приходит» клик по кнопкам после загрузки модели, для включения отображения стартового вида той или иной лодки
Пробывали отправлять команду что 3д загруженно с задержкой 0,1сек, работало но редкие сбои бывают все же

window.is3DLoaded = true; console.log("is3DLoaded set:", window.is3DLoaded);или отдельно добавили в visual logic.js

Function('app', 'v3d', 'puzzles', 'VARS', 'PROC', ( 'if (!window.__verge3dLoadedSent) {\n' + ' window.__verge3dLoadedSent = true;\n' + ' window.parent.postMessage({ type: "VERGE3D_LOADED" }, "*");\n' + '}' ))(appInstance, v3d, PL, VARS, PROC);Разработчики все уже перепробывали. С их слов — похоже что вердж не всегда понимает когда модель до конца загрузилась и передает сигнал раньше. Возможно в чем-то другом дело..
-
Тема изменена 1 месяц, 2 недели назад пользователем
3dma.
-
Тема изменена 1 месяц, 1 неделя назад пользователем
3dma.
-
Тема изменена 1 месяц, 1 неделя назад пользователем
3dma.
Вложения:
21 января, 2026 в 11:47 #202973dma
CustomerЕсть идея чтоб опции на предуставноленную конфигурацию приходили в сам вердж стартовые, а не прокликливались по интерфейсу как сейчас это сделанно,
типа такого добавить
window.addEventListener('message', (event) => { if (event.data?.type !== 'MODEL_CONFIG') return; const config = event.data.payload; console.log('Received model config:', config); applyModelConfig(config); });function applyModelConfig(config) { if (config.color) { v3d.SceneUtils.setMaterialColor( app.scene, 'BodyMaterial', config.color, ); } }опции тогда будут приходить такого вида, или по другому можно назвать
[ "tube_color_ice_white_hypalon", "tube_decor_black_carbon_hypalon", "fiberglass_gelcoat_white", "fiberglass_dashboard_black", "upholstery_taupe", "other_colors_seadek_mocha_black", "swimming_platforms", "bowrailing", "waterski_mast", "el_pack", "seadek_soft_anti_skid" ]то есть опции с фронт энда будут передаваться в iframe через postMessage ‘MODEL_CONFIG’ и в verge этот postMessage будет отслеживаться
Подскажите пожалуйста как лучше это реализовать, какими пазлами? Как эти названия опций который будут приходить в пост меседж связать с стандартной логикой нажатия на кнопки интерфейса внутри пазл эдитора- делать все взаимодействия процедурами, а приходящие опции записывать в переменные, но как их извлечь из пост меседжа? Т.е. нужен какой-то аналог on event клик только который бы тригерило названия опций в постмеседже, а не клики?
29 января, 2026 в 16:03 #20310
Alexander KovelenovStaffДобрый день!
Загрузку сцены можно проверить с помощью события sceneLoad, например с помощью exec script-пазла с кодом:
app.addEventListener('sceneLoad', () => { console.log('Scene loaded!') });Обработку события message можно сделать на пазле on event of, подав туда window через пазл DOM object selector. Параметры сообщения будут находиться в свойстве события data.
-
Ответ изменён 1 месяц назад пользователем
Alexander Kovelenov.
-
Тема изменена 1 месяц, 2 недели назад пользователем
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.


