CustomGames.ru - Dota 2 пользовательские игры

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

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн den4iccc

  • Продвинутый
  • 400
  • Мощь: 7
Подмена картинки js
« : 15-08-2017, 11:36:50 »
Помогите оптимизировать панель, есть 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() добавил просто для проверки что панель создаётся)

Оффлайн I_GRIN_I

  • Продвинутый
  • 636
  • Мощь: 11
  • Научиться бы скриптить...
Re: Подмена картинки js
« Ответ #1 : 15-08-2017, 12:02:44 »
den4iccc, так у тебя проаерки на нил нету, лол. Ты же при каждом вызове этой функции будешь новую панель создавать.
Сделай проверку, как у меня в сс.хмл,там есть типо иф $("#панель") ==нулл
Криейтпанель

Оффлайн den4iccc

  • Продвинутый
  • 400
  • Мощь: 7
Re: Подмена картинки js
« Ответ #2 : 15-08-2017, 12:46:19 »
den4iccc, так у тебя проаерки на нил нету, лол. Ты же при каждом вызове этой функции будешь новую панель создавать.
Сделай проверку, как у меня в сс.хмл,там есть типо иф $("#панель") ==нулл
Криейтпанель
Да точно, я сделал == null для var buttons "if(buttons == null)", но вот только панельки всё равно продолжают размножаться

Оффлайн ZLOY

  • Супермодератор
  • 456
  • Мощь: 6
Re: Подмена картинки js
« Ответ #3 : 15-08-2017, 13:11:15 »
А в xml запихнуть её религия не позволяет? И добавлять класс в css, который оверрайдит background-image

Оффлайн den4iccc

  • Продвинутый
  • 400
  • Мощь: 7
Re: Подмена картинки js
« Ответ #4 : 15-08-2017, 13:32:46 »
Я не совсем уловил суть, ты предлагаешь добавить id 1 панели и id 2 панели обозначив для каждой из них в css background-image путь для картинки и потом вызвать их для каждого условия в js?

Оффлайн RecoveryIt

  • 75
  • Мощь: 1
Re: Подмена картинки js
« Ответ #5 : 15-08-2017, 13:37:34 »
Я не совсем уловил суть, ты предлагаешь добавить 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")

Оффлайн den4iccc

  • Продвинутый
  • 400
  • Мощь: 7
Re: Подмена картинки js
« Ответ #6 : 15-08-2017, 13:40:29 »
Кароч вот что у меня есть 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;
}
}
[свернуть]

Оффлайн RecoveryIt

  • 75
  • Мощь: 1
Re: Подмена картинки js
« Ответ #7 : 15-08-2017, 13:48:58 »
Так суть та же)
Не совсем, тебе предлагают не создавать панель через js во время игры, а просто прописать ее в xml и добавить к ней классы, которые ты сможешь менять когда это необходимо.
Если я конечно все правильно понял...

Оффлайн den4iccc

  • Продвинутый
  • 400
  • Мощь: 7
Re: Подмена картинки js
« Ответ #8 : 15-08-2017, 13:49:21 »
На сколько я понял он имеет ввиду :

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

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

Всё понял базару zero, Спасибо вам

Оффлайн den4iccc

  • Продвинутый
  • 400
  • Мощь: 7
Re: Подмена картинки js
« Ответ #9 : 15-08-2017, 13:54:43 »
+Rep, всем