Нужна помощь

08 ноября 2016 19:18 #13600
…двух несвязанных между собой… все, понял, спасибо.
Алексей
08 ноября 2016 19:25 #13601
несвязанных
можно сделать, чтобы они были связаны, т.е. изменялись по ссылке, но это будет работать не со всеми типами данных; впрочем, это уже нюансы языка
Команда Blend4Web
08 ноября 2016 19:29 #13602
это речь идет о module.exports? несколько такого рода переменных в одном модуле можно применять, например:
module.exports = 123
module.exports = 456
module.exports = 789
??

И если я делаю var odin_dva_tri = require(./file), то будет ли конфликт между ними?
Алексей
08 ноября 2016 19:47 #13603
require("AmAve_2100");
    var ch_tex = 0

    exports.change_textures = function () {
        
        if (!ch_tex){
            ch_tex = 1
        }
        else {ch_tex = 0}
        
        
        var TEX_NIGHT_DIR = "tex_night/";
        
        var TEX_DAY_DIR = "tex_day/";      
        console.log(m_amave.APP);
        console.log(ch_tex)
        return ch_tex


Подскажите, если я во входные парламенты функции вставляю ch_tex, то у меня при вызове функции значения не меняются, а значит туда передается значение, назначенное при определении переменной. А как это может быть, если у меня эта функция вызывается из другого файла? Или при вызове через exports читается все, что написано до определения функции - все переменные, пути и т.д. и подхватывается значение  ch_tex = 0????
Алексей
08 ноября 2016 19:49 #13604
Вообще, функция после исполнения где переменные хранит? Как переменную можно раскопать в консоли и посмотреть к какой функции она относится?
Алексей
08 ноября 2016 23:17 #13617
Вылез глюк по замене картинки из текстур. Половина картинок меняется, половина нет. Фотки прилагаю. Прошу помочь разобраться в этом.
Алексей
09 ноября 2016 10:42 #13624
это речь идет о module.exports? несколько такого рода переменных в одном модуле можно применять, например:
module.exports = 123
module.exports = 456
module.exports = 789
??

И если я делаю var odin_dva_tri = require(./file), то будет ли конфликт между ними?
не, немного не то
я о том, что если в том же примере использовать объект, то обе переменные будут ссылаться на него:
var APP_ASSETS_PATH = exports.APP_ASSETS_PATH = { test: 0 };
APP_ASSETS_PATH.test = 1;
console.log(APP_ASSETS_PATH.test, exports.APP_ASSETS_PATH.test); // выдаст 1 1


А module.exports так не надо использовать - это объект, содержащий объявления, доступные извне. Его нужно применять только внутри своего же модуля, чтобы вывести наружу методы или переменные. Если потом будете загружать этот модуль через require, то вернется как раз его объект exports.
Например:
b4w.register("module1", function(exports, require) {
exports.odin = 3;
exports.dva = 2;
exports.tri = 1;
});

b4w.register("module2", function(exports, require) {
var m1 = require("module1");
console.log(m1); // выдаст: Object {odin: 3, dva: 2, tri: 1}
});
Команда Blend4Web
09 ноября 2016 11:00 #13628
Подскажите, если я во входные парламенты функции вставляю ch_tex, то у меня при вызове функции значения не меняются, а значит туда передается значение, назначенное при определении переменной. А как это может быть, если у меня эта функция вызывается из другого файла? Или при вызове через exports читается все, что написано до определения функции - все переменные, пути и т.д. и подхватывается значение  ch_tex = 0????
exports тут не при чем, так работает javascript. Переменная ch_tex у вас обявлена в т.н. "глобальной области видимости", т.е. будет видна внутри там же функции. Если объявить переменную с тем же именем в самой функции или передать параметр с таким же именем, то он как бы перезатрет глоб. переменную.
Если кратко, области видимости бывают вложенные, т.е:
(глобальная обл. ( обл. функции ) )
При использовании переменной, она сначала ищется в текущей области, если объявление не находится, то ищем выше и т.д., поэтому глобальная переменная ch_tex в вашем примере становится видна.
Команда Blend4Web
09 ноября 2016 11:09 #13630
Вообще, функция после исполнения где переменные хранит? Как переменную можно раскопать в консоли и посмотреть к какой функции она относится?
это уже сложнее, если просто нужно посмотреть значение переменной, то можно либо через console.log() её вывести, либо навесить на глоб. объект window, например:
var test = 0;
...
window.test = test;

тогда сможете в консоли просто набирать window.test и увидите значение
Команда Blend4Web
09 ноября 2016 11:12 #13631
Вылез глюк по замене картинки из текстур. Половина картинок меняется, половина нет. Фотки прилагаю. Прошу помочь разобраться в этом.
А как конкретно делаете смену? В консоли ошибок нет?
Команда Blend4Web
 
Пожалуйста, зарегистрируйтесь или войдите под своей учетной записью , чтобы оставлять сообщения.