Родительские массивы Adobe Animate Canvas? - PullRequest
0 голосов
/ 04 декабря 2018

У меня есть игра, которую я делаю на холсте Adobe Animate HTML.В моем коде ниже Есть ли способ объединить все stateItems[].stateplace1 =this.state, чтобы у меня не было 50 различных вариантов?Я попытался сделать state1s дочерним элементом StateItems, но он все еще выглядит очень производным.

Если stateItems и state1s были двумя разными массивами, есть ли способ вызвать первый элемент (Florida) stateItems для первой цели (state1) и так далее, чтобы они были «связаны», так сказать.Будет ли что-то подобное работать и как мне это сделать?

Я очень новичок в javascript, поэтому приношу свои извинения, если есть супер простое решение.

Редактировать: StateItems - это отдельные символы в Animate для реального примера Соединенных Штатов Америки: Флорида - штат в Соединенных Штатах Америки, поэтому он является частью моего массива StateItem.stateplace - это то место, где будут размещаться состояния, stateplace - это один символ, а stateplace 1 2 и 3 - экземпляры состояний.Я просто хотел узнать, есть ли способ очистки the stateplace1 s в цикле StateItems, чтобы не было 50 stateItems[0].stateplace1 = this.stateplace1;. Я просто не мог найти другой способ подключения каждого StateItem к соответствующему месту состояний.Код работает так, как мне нужно, я просто не знаю, есть ли способ его немного очистить.Я надеюсь, что это проясняет ситуацию.

var stateItems = [this.florida, this.alabama, this.southcarolina]

// we apply the same code for each symbol with the for loop
for(var i = 0; i<stateItems.length; i++){	
	stateItems[i].on("mousedown", onMouseDown.bind(this));
	stateItems[i].on("pressmove", onMouseMove.bind(this));
	stateItems[i].on("pressup", onMouseUp.bind(this));
	stateItems[0].stateplace1 = this.stateplace1;
	stateItems[1].stateplace1 = this.stateplace2;
	stateItems[2].stateplace1 = this.stateplace3;
	stateItems[i].originX = stateItems[i].x;
	stateItems[i].originY = stateItems[i].y;
	
	
	
}

// mouse down event
function onMouseDown(evt){
	var item = evt.currentTarget;
	item.offset = {x:0, y:0};
	var pt = item.parent.globalToLocal(evt.stageX, evt.stageY);
	item.offset.x = pt.x - item.x;
	item.offset.y = pt.y - item.y;
	item.drag = true;
}
// mouse up event
function onMouseUp(evt){
	var item = evt.currentTarget;
	item.drag = false;
	var pt = item.localToLocal(item.dot.x, item.dot.y, item.state1.hitBox);
	if(item.stateplace1.hitBox.hitTest(pt.x, pt.y) ){
		item.x = item.stateplace1.x;
		item.y = item.stateplace1.y;
		item.mouseEnabled = false;   // prevents object from being move when place correctly
	}else{
		item.x = item.originX;
		item.y = item.originY;
	}
}
function onMouseMove(evt){
	var item = evt.currentTarget;
	if (item.drag){
		var pt = item.parent.globalToLocal(evt.stageX, evt.stageY);
		item.x = pt.x - item.offset.x;
		item.y = pt.y - item.offset.y;
	}
// mouse move event

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...