Прятать объекты группой

04 сентября 2017 14:40
Добрый день.
Есть функция, которая показывает объект
function show_geometry_one()
{
var Cooler_one = m_scenes.get_object_by_name("Cooler_1");
all_hide_cooler();
m_scenes.show_object(Cooler_one);
}

В данной функции есть еще одна которая должна перед показом прятать всю похожую геометрию.
function all_hide_cooler()
{
m_scenes.hide_object(Cooler_one);
m_scenes.hide_object(Cooler_two);

}

но она не хочет работать. Геометрия не инициализируется во второй функции
ReferenceError: "x" is not defined
04 сентября 2017 15:10
или так?
function show_geometry_one()
{
var all_coolers = m_scenes.get_object_by_name("All_coolers");
var Cooler_one = m_scenes.get_object_by_name("Cooler_1");
m_scenes.hide_object(all_coolers);
m_scenes.show_object(Cooler_one);
}

function show_geometry_two()
{
var all_coolers = m_scenes.get_object_by_name("All_coolers");
var Cooler_two = m_scenes.get_object_by_name("Cooler_2");
m_scenes.hide_object(all_coolers);
m_scenes.show_object(Cooler_two);
}

function show_geometry_three()
{
var all_coolers = m_scenes.get_object_by_name("All_coolers");
m_scenes.hide_object(all_coolers);
}
06 сентября 2017 12:58
На сколько я понял, вы не разобрались с областью видимости переменных. Если вы инициируете переменную внутри функции, то она будет видна только внутри нее. Попробуйте вынести ее отдельно, как-то так:

var Cooler_one;
var Cooler_two;

function show_geometry_one()
{	
        Cooler_one = m_scenes.get_object_by_name("Cooler_1");
	all_hide_cooler();
	m_scenes.show_object(Cooler_one); 
}
function all_hide_cooler()
{
	m_scenes.hide_object(Cooler_one); 
	m_scenes.hide_object(Cooler_two); 
}
 
Пожалуйста, зарегистрируйтесь или войдите под своей учетной записью , чтобы оставлять сообщения.