Adobe Animate画布父阵列?

时间:2018-12-04 19:49:09

标签: javascript createjs adobe-animate

我有一个正在用Adobe动画HTML画布制作的游戏。在下面的代码中,是否有一种方法可以合并所有stateItems[].stateplace1 =this.state,所以我没有50种不同的版本?我尝试将state1s用作StateItems的子项,但仍然感觉很衍生。

如果stateItems和state1s是两个不同的数组,则有一种方法可以将stateItems的第一项(佛罗里达州)调用到第一个目标(state1),依此类推,这样它们就被“链接”了。这样的事情会起作用吗,我将如何去做呢?

我对javascript很陌生,因此如果有一个超级简单的解决方案,我深表歉意。

编辑: StateItems是实际美利坚合众国示例的Animate中的单个符号:佛罗里达州是字面美国中的一个州,因此它是我的StateItem数组的一部分。 stateplace是放置状态的位置,stateplace是一个符号,stateplace 1 2和3是状态的实例。我只是想知道StateItems循环中是否有方法可以清除the stateplace1,因此没有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

}

0 个答案:

没有答案