HTML Element ID как и где к нему обратиться ?

19 марта 2018 22:11
Добрый день!
Пробую в созданную мной 3D сцену вставить HTML- страницы для создания сайта.
Делал по данному примеру Mixing 2D HTML with a 3D Web Scene

Указал ID
От куда мне к нему обратиться? Правильно ли я понял что из этого файла:

Я пробую но даже консоль молчит про то что я там что то делаю

Или мне создавать свой my_file.js и из него уже обращаться к ID (Custom Element)??
20 марта 2018 17:19
Необходимо иметь элемент с вашим id в html-документе. Его также можно создать динамически, как например это делается вот тут.
Александр (команда Blend4Web)
twitter
20 марта 2018 17:57
Спасибо за ответ!

Вроде как создаю элемент.


Но консоль показывает:
21 марта 2018 11:58
Ответ на сообщение пользователя Александр Романов
Необходимо иметь элемент с вашим id в html-документе. Его также можно создать динамически, как например это делается вот тут.
Александр. Скопировал всё как в примере. Но ни custom ни generic не появились только anotation. В примере на который вы указали все работает, у меня в копии нет Или я криворук….или я криворук




Файл с моими потугами создать по примеру

PS. Не сплю 4-е сутки из-за этого
22 марта 2018 00:17
Есть несколько ошибок, постараюсь описать все.

1) Когда вы делали архив с исходниками, вы скорее всего скопировали содержимое , находящееся в папке с проектом. При этом теряется один скрытый файлик с именем .b4w_project, который содержит описание проекта. Чтобы передать всю необходимую информацию нужно использовать кнопку Export Project(s), находящуюся на самом верху в Менеджере проектов.
Возможно менеджер проектов вы не использовали. Но я рекомендую его попробовать, по крайней мере на этапе обучения движку, поскольку те же самые проекты на основе code_snippets делаются за один клик, а дальше можно экспериментировать.

2) В данный момент существует два подхода к написанию приложений B4W. Есть старый подход, в котором используется собранная версия библиотеки, например b4w.min.js, как у вас. В этом случае нужно использовать b4w.require и не использовать ключевые слова import/export. Есть также новый подход, основанный на es6-модулях. В случае нового подхода нужно использовать import/export и не использовать b4w.require. Также в отличие от старого подхода, новый подход требует сборки приложения (Менеджер проектов это делает за вас).

3) Собранная версия движка ожидает наличие текстур в оптимизированном формате (который делает команда convert resources менеджера проектов), поэтому вы увидите некоторые ошибки в консоли, что соответствующих текстур не было найдено, взамен, подгрузятся те текстуры, которые есть.

Итак прикрепляю myanchors_fixed.zip.

Вот диф с изменениями:
diff -rupN myAnchors_orig/.b4w_project myAnchors/.b4w_project
— myAnchors_orig/.b4w_project 1970-01-01 03:00:00.000000000 +0300
+++ myAnchors/.b4w_project 2018-03-21 23:40:36.790999800 +0300
@@ -0,0 +1,35 @@
+[info]
+name = myAnchors
+author =
+title = My Anchors
+icon = .b4w_icon.jpg
+
+[paths]
+assets_dirs =
+blend_dirs =
+blender_exec = blender
+build_dir = projects/myAnchors/build
+deploy_dir =
+
+[compile]
+apps = myanchors.html
+css_ignore =
+engine_type = compile
+js_ignore =
+optimization = advanced
+use_physics = True
+use_smaa_textures = False
+version =
+ignore =
+
+[deploy]
+assets_path_prefix =
+override =
+assets_path_dest =
+ignore =
+
+[url_params]
+
+[editor]
+editor_ignore = node_modules;*.svg;*.jpg;*.woff;*.woff2;*.pug;package-lock.json;.b4w_project
+
diff -rupN myAnchors_orig/custom_anchors.js myAnchors/custom_anchors.js
— myAnchors_orig/custom_anchors.js 2018-03-22 00:14:42.310200100 +0300
+++ myAnchors/custom_anchors.js 2018-03-21 23:48:53.916453900 +0300
@@ -1,19 +1,17 @@
"use strict"

-import b4w from "blend4web";
+b4w.register("myanchors", function(exports, require) {

-var m_anchors = b4w.anchors;
-var m_app = b4w.app;
-var m_cfg = b4w.config;
-var m_data = b4w.data;
-var m_scs = b4w.scenes;
-var m_version = b4w.version;
+var m_anchors = b4w.require("anchors");
+var m_app = b4w.require("app");
+var m_cfg = b4w.require("config");
+var m_data = b4w.require("data");
+var m_scs = b4w.require("scenes");
+var m_version = b4w.require("version");

var DEBUG = (m_version.type() === "DEBUG");

-var APP_ASSETS_PATH = m_cfg.get_assets_path("custom_anchors");
-
-export function init() {
+exports.init = function() {
m_app.init({
canvas_container_id: "main_canvas_container",
callback: init_cb,
@@ -45,7 +43,7 @@ function init_cb(canvas_elem, success) {
torus_text.innerHTML = "Torus (Custom Element)";
document.body.appendChild(torus_text);

- m_data.load(APP_ASSETS_PATH + "custom_anchors.json", load_cb);
+ m_data.load("custom_anchors.json", load_cb);
}

function load_cb(data_id) {
@@ -74,8 +72,9 @@ function load_cb(data_id) {
anchor_elem.style.visibility = "hidden";
});
}
+})



-init();
+b4w.require("myanchors").init();

Александр (команда Blend4Web)
twitter
22 марта 2018 00:23
Александр. Скопировал всё как в примере. Но ни custom ни generic не появились только anotation. В примере на который вы указали все работает, у меня в копии нет Или я криворук….или я криворук
На картинке у вас открыто приложение Viewer. Это не проект, это то, что открывается при нажатии на Fast Preview. В этом случае запускается совершенно другое приложение, никак не связанное с вашим. Поэтому кастомные аннотации там работать не будут, только нативные.
Проект следует открывать через ссылки, находящиеся в Менеджере проектов в колонке, находящейся сразу после иконки проекта.
Александр (команда Blend4Web)
twitter
22 марта 2018 11:45
Спасибо за столь развернутый ответ!
Видимо я пытался сделать по видео уроку а там как раз старый вариант разобран. Сейчас буду пробовать все сделать через менеджер проектов.
 
Пожалуйста, зарегистрируйтесь или войдите под своей учетной записью , чтобы оставлять сообщения.