Вызов GameEvents. Панорама

den4iccc

Друзья CG
20 Сен 2014
440
1
Проект
Survival in Taiga XE
Есть список который фильтруется и выводится в css через js, мне надо сделать вызов GameEvents.SendCustomGameEventToServer("craft_system", upgradesss) только по одной картинке, а не по всему контейнеру (я продебажил каждую картинку вывело: <Button id="craft_axe" class="Up" style="..." />) id "craft_axe" в xml не указывал. Как мне сделать вызов только по одной картинке, что имеется в var upList ? На данный момент у меня по всем картинкам срабатывает вызов через CraftContainer(всё тело).

Скрин http://www.picshare.ru/view/8212669/

js
Код:
"use strict";
var upList = ["craft_axe",
		  "craft_axew",
		  "craft_axe_tree",
		  "craft_wood",					
		  ];

function Open()
{
	var container = $("#CraftContainer")
	var dotaHud = $.GetContextPanel().GetParent().GetParent().GetParent().GetParent()
	if ( dotaHud.FindChildTraverse("shop").BHasClass("ShopOpen") ) {
	$.DispatchEvent( "DOTAShopHideShop" );
	container.AddClass("opened")
	}
	else
	container.ToggleClass("opened")
}

/*function Craft()
{
	var plyID = Game.GetLocalPlayerID();
  var upgradesss = {
    playerID: plyID,
  }
	
  GameEvents.SendCustomGameEventToServer( "craft_system", upgradesss ); 	
}*/

function Up(name)
{
	var upButton = $.CreatePanel("Button", $("#CraftContainer"), name)
	upButton.style.backgroundImage = "url('file://{images}/custom_game/craft/" + name + ".png')"
	upButton.AddClass("Up")
	//upButton.name = name
	
	var plyID = Game.GetLocalPlayerID();
	
    var upgradesss = { 	
    playerID: plyID,
  }
	
	upButton.SetPanelEvent("onmouseactivate", function() { 

	GameEvents.SendCustomGameEventToServer("craft_system", upgradesss) 
	})
}

(function () { 
	for (var i = 0; i != upList.length ; i++) {
		Up(upList[i])
	} 
	$.Schedule(0.03)
})();


xml
Код:
<root>
	<styles>
		<include src="file://{resources}/styles/custom_game/slider_shop.css" />
	</styles>
	<scripts>
		<include src="file://{resources}/scripts/custom_game/slider_shop.js" />
	</scripts>
	<Panel class="Root" hittest="false">
	
	 <Panel id="Scrolling" onactivate="ScrollToTop()" hittest="false">
		<Panel id="CraftContainer" /> 	
	</Panel>

		<Button id="OpenButton" onactivate="Open()" >
		<Image id="img" src="file://{images}/custom_game/img.png"/>
		</Button>
	</Panel>
</root>
 
Последнее редактирование модератором:

den4iccc

Друзья CG
20 Сен 2014
440
1
Проект
Survival in Taiga XE
Как именно внутри CraftContainer выбрать элемент без создания новой панели, пробовал по id добавлять в xml, потом в js создавать новую панель и обрабатывать запрос именно только по этому id, в итоге получается у меня под контейнером создаётся панель "картинка" и работает как надо, но мне надо внутри использовать а не добавлять новые
 
Последнее редактирование модератором:

ZLOY

Администратор
Команда форума
27 Июн 2016
953
182
Должно быть так-же как у меня?
 

I_GRIN_I

Друзья CG
15 Мар 2016
1,335
105
den4iccc, var itempanel = $.CreatePanel("Panel", $("#CraftContainer"), АЙДИ ПАНЕЛИ, КОТОРУЮ СОЗДАЕШЬ);
Вызов: $("#АЙДИ ПАНЕЛИ, КОТОРУЮ СОЗДАЕШЬ")
 
Последнее редактирование модератором:

I_GRIN_I

Друзья CG
15 Мар 2016
1,335
105
den4iccc, а ты отправляешь в айди таблицу. Там строка нужна.
 

ZLOY

Администратор
Команда форума
27 Июн 2016
953
182
B ID игрока тебе самому не нужно в ивент вставлять
 

den4iccc

Друзья CG
20 Сен 2014
440
1
Проект
Survival in Taiga XE
Хз, просто хотел сделать вызов когда нажимаю на одну из картинок например: "file://{images}/custom_game/upgrades/craft_axe_tree.png')" то срабатывет
Код:
GameEvents.SendCustomGameEventToServer("craft_system", upgradesss)
а не как я написал что бы срабатывало когда я жму по кантейнеру
 
Последнее редактирование модератором:

I_GRIN_I

Друзья CG
15 Мар 2016
1,335
105
den4iccc, ну создай просто панель с бэкграундом твоей картинки
 

ZLOY

Администратор
Команда форума
27 Июн 2016
953
182
Для начала нужно понять что ты нажимаешь не на картинку, а на панель на которой эта картинка нарисована
 

I_GRIN_I

Друзья CG
15 Мар 2016
1,335
105
ZLOY, ну типо есть $.Msg(), чтобы проверять такое
 

den4iccc

Друзья CG
20 Сен 2014
440
1
Проект
Survival in Taiga XE
[quote author=I_GRIN_I link=topic=1642.msg10952#msg10952 date=1501712355]
den4iccc, ну создай просто панель с бэкграундом твоей картинки
[/quote]
Когда я так делаю у меня вся таблица заполняется однообразной картинкой помимо того что есть другие картинки
 

den4iccc

Друзья CG
20 Сен 2014
440
1
Проект
Survival in Taiga XE
Для начала нужно понять что ты нажимаешь не на картинку, а на панель на которой эта картинка нарисована
Я знаю что я нажимаю на эту панель я же написал в самом начале темы
 
Последнее редактирование модератором:

I_GRIN_I

Друзья CG
15 Мар 2016
1,335
105
den4iccc, что тебе нужно сделать? Кинь свой вк в лс
 

den4iccc

Друзья CG
20 Сен 2014
440
1
Проект
Survival in Taiga XE
Вот что я хотел сделать только это быдло код, я хочу это как то урезать что бы не создавать каждый раз новую панель
Код:
"use strict";
var upList = [""];

function Open()
{
	var container = $("#CraftContainer")
	
	var dotaHud = $.GetContextPanel().GetParent().GetParent().GetParent().GetParent()
	if ( dotaHud.FindChildTraverse("shop").BHasClass("ShopOpen") ) {
		$.DispatchEvent( "DOTAShopHideShop" );
		container.AddClass("opened")
	}
	else
		container.ToggleClass("opened")
}

function Up()
{
	var axe = $.CreatePanel('Button', $("#CraftContainer"), '#craft_axe')
	axe.style.backgroundImage = "url('file://{images}/custom_game/craft/craft_axe.png')"
	axe.AddClass("Up")

	var tree = $.CreatePanel('Button', $("#CraftContainer"), '#craft_axe_tree')
	tree.style.backgroundImage = "url('file://{images}/custom_game/craft/craft_axe_tree.png')"
	tree.AddClass("Up")
	
	var wood = $.CreatePanel('Button', $("#CraftContainer"), '#craft_wood')
	wood.style.backgroundImage = "url('file://{images}/custom_game/craft/craft_wood.png')"
	wood.AddClass("Up")
	
	var axew = $.CreatePanel('Button', $("#CraftContainer"), '#craft_axew')
	axew.style.backgroundImage = "url('file://{images}/custom_game/craft/craft_axew.png')"
	axew.AddClass("Up")
	
	var plyID = Game.GetLocalPlayerID();
	var upgradesss = { 	
    playerID: plyID,
    }
	
	axe.SetPanelEvent("onmouseactivate", function() { 
	GameEvents.SendCustomGameEventToServer("craft_system", upgradesss) 
	})
	
	axew.SetPanelEvent("onmouseactivate", function() { 
	GameEvents.SendCustomGameEventToServer("craft_sreghrh", upgradesss) 
	})
}

(function () { 
	for (var i = 0; i != upList.length ; i++) {
		Up(upList[i])
	} 
	$.Schedule(0.03)
})();
 
Последнее редактирование модератором:

I_GRIN_I

Друзья CG
15 Мар 2016
1,335
105
den4iccc, ты мне вк свое кинь и я тебе покажу как все запилить
 
Реклама: