Подмена картинки js

den4iccc

Друзья CG
20 Сен 2014
440
1
Проект
Survival in Taiga XE
Помогите оптимизировать панель, есть 2 картинки (img_1 и img_2) нужно заполнить борд картинкой img_1, if ($("#OpenSliderBox").style.visibility=="visible") else борд меняет картинку на другую (img_2)

Код:
function Check()
{	
	var buttons = $.CreatePanel("Panel", $("#OpenPanel"), "OpenPanel");
	buttons.SetHasClass("OpenPanel",true);
	
	if ($("#OpenSliderBox").style.visibility=="visible")
	{
		$("#OpenSliderBox").style.visibility="collapse";
		buttons.style.backgroundImage = "url('file://{images}/custom_game/buttons_down.png')";
	}
	else
	{
		$("#OpenSliderBox").style.visibility="visible";
		buttons.style.backgroundImage = "url('file://{images}/custom_game/buttons_up.png')";
	}
	$.Schedule(1, Check);
}

Надо осуществить подмену панели, а не создавать новую, на данный момент работает если обновляю код то картинка "меняется" создаётся ещё одна панель по верх старой ($.Schedule() добавил просто для проверки что панель создаётся)
 
Последнее редактирование модератором:
den4iccc, так у тебя проаерки на нил нету, лол. Ты же при каждом вызове этой функции будешь новую панель создавать.
Сделай проверку, как у меня в сс.хмл,там есть типо иф $("#панель") ==нулл
Криейтпанель
 
Последнее редактирование модератором:
[quote author=I_GRIN_I link=topic=1656.msg11183#msg11183 date=1502798564]
den4iccc, так у тебя проаерки на нил нету, лол. Ты же при каждом вызове этой функции будешь новую панель создавать.
Сделай проверку, как у меня в сс.хмл,там есть типо иф $("#панель") ==нулл
Криейтпанель
[/quote]
Да точно, я сделал == null для var buttons "if(buttons == null)", но вот только панельки всё равно продолжают размножаться
 
Последнее редактирование модератором:
А в xml запихнуть её религия не позволяет? И добавлять класс в css, который оверрайдит background-image
 
Я не совсем уловил суть, ты предлагаешь добавить id 1 панели и id 2 панели обозначив для каждой из них в css background-image путь для картинки и потом вызвать их для каждого условия в js?
 
Я не совсем уловил суть, ты предлагаешь добавить id 1 панели и id 2 панели обозначив для каждой из них в css background-image путь для картинки и потом вызвать их для каждого условия в js?

На сколько я понял он имеет ввиду :

Код:
#some_panel.opened {
  background-image:"ссылка_на_картинку_1"
}
#some_panel.closed {
  background-image:"ссылка_на_картинку_2"
}

ну и в js
Код:
some_panel.AddClass("opened") / some_panel.AddClass("closed")
 
Последнее редактирование модератором:
Кароч вот что у меня есть xml:
Код:
<Panel id="OpenPanel" onactivate="OcButton()" />

css:
Код:
#OpenPanel
{
	background-color: gradient( linear, 0% 10%, 100% 100%, from( #25282acc ), color-stop( .5, #25282acc), to( #000000cc ) );
	width: 2%;
	height: 3%;
	align: right top;
	margin: 29.9% 0.5% 0% 0%;
	border-radius: 10px;
	border: 2px solid #e3b43e;
}


js

Код:
var but = false;
var buttons;

function OcButton()
{		
	/*if($("#OpenPanel") == null)
	{	
	var buttons = $.CreatePanel("Panel", $("#OpenPanel"), "OpenPanel");
	buttons.SetHasClass("OpenPanel",true);
	}*/

	var buttons = $.CreatePanel("Panel", $("#OpenPanel"), "OpenPanel");
	buttons.SetHasClass("OpenPanel",true);
	
	if(!but)
	{
		$("#OpenSliderBox").style.visibility="visible";
		buttons.style.backgroundImage = "url('file://{images}/custom_game/buttons_down.png')";
		but = true;
	}
	else
	{
		$("#OpenSliderBox").style.visibility="collapse";
		buttons.style.backgroundImage = "url('file://{images}/custom_game/buttons_up.png')";
		but = false;
	}
}
 
Последнее редактирование модератором:
Так суть та же)
Не совсем, тебе предлагают не создавать панель через js во время игры, а просто прописать ее в xml и добавить к ней классы, которые ты сможешь менять когда это необходимо.
Если я конечно все правильно понял...
 
Последнее редактирование модератором:
[quote author=RecoveryIt link=topic=1656.msg11187#msg11187 date=1502804254]
На сколько я понял он имеет ввиду :

Код:
#some_panel.opened {
  background-image:"ссылка_на_картинку_1"
}
#some_panel.closed {
  background-image:"ссылка_на_картинку_2"
}

ну и в js
Код:
some_panel.AddClass("opened") / some_panel.AddClass("closed")
[/quote]

Всё понял базару zero, Спасибо вам
 
Последнее редактирование модератором:
Реклама: