Нужна помощь

16 ноября 2016 13:14 #13870
.name, i.type и i.bpy_origin - не стоит так брать, поэтому их можно заменить проверкам: "MESH" - параметр функции
get_all_objects, name - результат вызова m_scs.get_object_name, только с bpy_origin заминка - сейчас специального метода нет (добавим к этому релизу), поэтому можно проверить, что имя начинается не с "%meta" как у побочных объектов.


А это все потому-что самому приходится ковырять js. Не нашел исполнителя на эту, в принципе, не сложную задачу)) Ну ничего, в жизни пригодится и этот навык, учитывая современные тенденции…
Алексей
16 ноября 2016 14:37 #13871
Я так полагаю, что заминка на этапе сбора перечня объектов. У меня есть файл, в котором я заранее собираю все переменные и там есть определение объектов. Так как load_cb вызывается после первого json, то vars не получает весь список объектов.
Да, именно в этом дело.

Вот думаю, если сделать отдельную функцию, которую вызвать callback после загрузки последнего json. А Вы такого рода объекты с перечнем чего-либо меняющегося динамически предусматриваете или каждый раз вызываете подбор объектов? Или делаете переменную с перечнем имен ключевых объектов, а потом их каждый раз собираете?
Ну я не припомню, чтобы у нас такие задачи возникали, чтобы менять сразу все объекты . Но вариант с отдельной функцией подходит. Нужно сделать глобальный массив объектов, а каждому json-у назначить колбек по загрузке (как и load_cb для первого). Колбек вызывает отдельную функцию, в которой добавляются новые объекты в этот массив. Проверить, какие объекты были добавлены в конкретно этом json-е можно по их data_id (грубо говоря - счетчику json-ов):

function load_cb(data_id) {
    var objs = m_scenes.get_all_objects("MESH", data_id);
}


По динамической загрузке можете посмотреть этот туториал: Меблируем комнату. Часть 1: Динамическая загрузка.

А это все потому-что самому приходится ковырять js.
Ковырять вообще полезно - понимание только улучшится. А такие заминки у вас просто от небольшой практики программирования.
Команда Blend4Web
16 ноября 2016 14:57 #13872
ну вот гляньте, если интересно amave.valpo.ru
Алексей
16 ноября 2016 14:59 #13873
Там еще звук должен быть, но он работает только на хроме, на сафари, айпад и телефоне звук не загружается. Здесь что может быть? Я просто хочу использовать активную звуковую картину с сенсорами и сменой звукового окружения в зависимости от местоположения камеры.
Алексей
16 ноября 2016 15:29 #13874
Зашёл в дом, поднялся на 2ой этаж, выпрыгнул в окно на нижний ярус крыши, бегал вокруг и с разбегу таки получилось запрыгнуть на самый верх.
Winner!
Не стой, где попало… Попадет еще раз.
http://naviris.ru/
16 ноября 2016 15:35 #13876
function upd_objs() {
    var excl_objs = ['Character'];
    var _objs = [];
    m_scs.get_all_objects('MESH').forEach(function(i){
        var name = m_scs.get_object_name(i);
        if (!excl_objs.includes(name) && name.indexOf('%meta') != 0) {
        console.log(name);
        _objs.push = i
            };    
        });
    s_vars.objs = _objs;
    };
    
});


Никак не могу "поймать мыша" - определив один раз s_vars и в нем objs нулевой длины, хочу обновить этот массив калбэк функций, приведенной выше, но в консоль ругается на s_vars, что понятно. Подскажите, как для калбэк функции определить s_vars. Начал мучать калбэк функцию такими строками, но понятно, что не заработало. m_data.load(APP_ASSETS_PATH + "AmAve_2100_rest.json", upd_objs(b4w.require("vars").objs));
Алексей
16 ноября 2016 15:39 #13877
Зашёл в дом, поднялся на 2ой этаж, выпрыгнул в окно на нижний ярус крыши, бегал вокруг и с разбегу таки получилось

Подумываю десматч сделать в качестве фичи для клиентов - кто победит, возможность выбора цвета стен или комплект зимней резины к минивену).
Алексей
16 ноября 2016 15:41 #13878
Еще хотелось бы разрушение конструкций, но это когда я разберусь как s_vars вызывать через калбэк и более-менее пойму всю эту науку.
Алексей
16 ноября 2016 16:18 #13881
Никак не могу "поймать мыша" - определив один раз s_vars и в нем objs нулевой длины, хочу обновить этот массив калбэк функций, приведенной выше, но в консоль ругается на s_vars, что понятно. Подскажите, как для калбэк функции определить s_vars. Начал мучать калбэк функцию такими строками, но понятно, что не заработало. m_data.load(APP_ASSETS_PATH + "AmAve_2100_rest.json", upd_objs(b4w.require("vars").objs));

Это я сам себе отвечаю:
Вообще, там есть куча способов разнести загрузку функций и загрузку json и все они крутятся вокруг последовательности подключения модулей, выполнения функций и калбэков, в частности, можно загрузить основной json, запустить все функции сетапа управления, анимации, интерфейса, чтобы юзер получил картинку, а дальше загрузить оставшиеся json'ы и через калбеэк обновить необходимые переменные, причем совершенно не обязательно json грузить именно в функции load. Единственный минус при этом, что функционал кнопок будет не полноценным и если после смены картинок загрузятся дополнительные объекты, то они будут со старыми картинками, но если функция привязана к глобальной переменной, то повторная замена картинок коснется обновленного перечня объектов и замена произойдет полностью.
Алексей
16 ноября 2016 17:33 #13885
Подскажите, а как можно интегрировать b4w библиотеки в IDE? Я использую brackets.io и было бы очень удобно, если бы там была подсказка не только п JQuery, но по всему фаршу из b4w.
Алексей
 
Пожалуйста, зарегистрируйтесь или войдите под своей учетной записью , чтобы оставлять сообщения.