Форум

Сообщения, созданные пользователем Семенцов Роман
06 мая 2015 15:42
Hi.
We think that the webplayer interface is optimal for the most users. And we don't plan to change it.
But if you want to change it by yourself you should remember about this.
05 мая 2015 18:45
Hi.
The engine uses asynchronous loading method. It means that you can not know what is loading now.

But you can use browser profiling to know loading time diagrams.
05 мая 2015 17:33

Как из функций в html-документе обратиться в b4w к функции change_color() и передать ей параметром переменную rgb = Float32Array()?

example
05 мая 2015 16:51

Дела обстоят печальнее, когда туда же пытаешься загнать массив из 200 кнопок с библиотекой цветов

А почему бы не сделать смену цвета на объекте по нажатию на сам объект, а не на html-элемент?
Это бы значительно упростило интерфейс приложения. Можно навесить обработчик события нажатия на канвас как в этом уроке и проверять на какой объект было произведено нажатие.

Я бы сделал примерно так:
// . . . 
function init_cb(canvas_elem, success) {
// . . . 
if (!m_main.detect_mobile())
       canvas_elem.addEventListener("mousedown", main_canvas_down);
    canvas_elem.addEventListener("touchstart", main_canvas_down);
// . . . 
}
// . . .
function main_canvas_down(e) {
    if (e.preventDefault)
        e.preventDefault();

    var x = m_mouse.get_coords_x(e);
    var y = m_mouse.get_coords_y(e);

    var obj = m_scenes.pick_object(x, y);
    if (obj)
        switch(m_scenes.get_object_name(obj)) {
        case "Obj_name_1":
            m_mat.set_diffuse_color(obj, "mat_diffuse_color_1", [50,0,0]);
            break;
        case "Obj_name_2":
            m_mat.set_diffuse_color(obj, "mat_diffuse_color_2", [50,50,0]);
            break;
        case "Obj_name_3":
            m_mat.set_diffuse_color(obj, "mat_diffuse_color_3", [50,0,50]);
            break;
        case "Obj_name_4":
            m_mat.set_diffuse_color(obj, "mat_diffuse_color_4", [50,50,50]);
            break;
        case "Obj_name_5":
            m_mat.set_diffuse_color(obj, "mat_diffuse_color_5", [250,250,50]);
            break;
        }
}


Все объекты должны быть динамическими и иметь проставленную галочку "Selectable"
30 апреля 2015 19:04
Hi.
I've just tried to reproduce this issue. I could get this console message when the scene isn't loaded.
Check the functions' calling sequence, please. You should call m_mouse.enable_mouse_hover_outline() after the scene loading.

You can check the right function call order in this tutorial. You should call m_mouse.enable_mouse_hover_outline() in this place:
function load_cb(data_id) {
 m_mouse.enable_mouse_hover_outline();
}
30 апреля 2015 18:10
Сверху слева цифра 1. нажать на нее - цвет сменится
example_16.zip

Такой функционал нужен?
30 апреля 2015 17:33

onclick="change_color(rgb)"

Не могли бы вы подробнее описать, что именно вы делаете?

Мне показалось, что вы пытаетесь на html-элементе навесить обработчик события на нажатие мышью. Если да, то в функцию обработчик передается событие, а не переменная rgb. Попробуйте написать не alert, a console.log(rgb) и посмотреть в консоле, что передается в функцию.
30 апреля 2015 17:10

Проект загружается, а конструкция не работает.
Я не сказал сразу, что для того, чтобы этот функционал был доступен для объекта, надо выставить галочку "Force Dynamic Object".
Подозреваю, что если сейчас нажать F12 в браузере, то в консоле будет сообщение, говорящее о том, что объект не динамический.
30 апреля 2015 13:56

Существует ли возможность динамической загрузки текста?

Подобный функционал можно реализовать, используя динамическую загрузку сцены, как в этом уроке. Подгружать заранее подготовленные буквы. Или же использовать динамическое копирование объектов с основной сцены.

Для этого надо хранить буквы в основном .json-файле или же в дополнительных. А потом расставлять эти буквы в текущей сцене.

Если не хочется реализовывать всю эту процедуру, то можно использовать Canvas-текстуру.

Вот в этом приложении используется подобная текстура для печати текста.

Но в этом случае не будет объемного текста.
30 апреля 2015 09:49
Добрый день.
Обратите внимание на этот пример.

Тут продемонстрирована работа модуля "material". Нажмите на кнопку "View code", чтобы посмотреть примеры использования функционала. Данное приложение также доступно из SDK (SDK/apps_dev/code_snippets/code_snippets_dev.html).

Кстати, разрядная сетка не от 0 до 1, а от 0 до 255:
m_mat.set_diffuse_color(cube_diffuse_color, "mat_diffuse_color", [50,0,0]);