使用鼠标添加和删除位图图像;单击";-JavaScript/CreateJS
当我单击一些容器(总共10个容器)时,我会将硬币(位图)添加到其中。现在我想把硬币一个接一个地取下来。例如,如果我在我的舞台上点击一个形状3次,我就会创造3枚硬币并将它们放入一个容器中。现在,如果我在移除按钮上单击一次(也在舞台上),它应该移除添加到容器中的最后一枚硬币,依此类推 以下是我如何尝试的: -->“evt.target”是一个容器使用鼠标添加和删除位图图像;单击";-JavaScript/CreateJS,javascript,html,bitmap,containers,easeljs,Javascript,Html,Bitmap,Containers,Easeljs,当我单击一些容器(总共10个容器)时,我会将硬币(位图)添加到其中。现在我想把硬币一个接一个地取下来。例如,如果我在我的舞台上点击一个形状3次,我就会创造3枚硬币并将它们放入一个容器中。现在,如果我在移除按钮上单击一次(也在舞台上),它应该移除添加到容器中的最后一枚硬币,依此类推 以下是我如何尝试的: -->“evt.target”是一个容器 this.coin= new createjs.Bitmap(images.jeton_image); this.coin.value = this.co
this.coin= new createjs.Bitmap(images.jeton_image);
this.coin.value = this.coin_index;
this.coin_array.push(this.coin);
this.coin_index++;
this.coin.regX = 50;
this.coin.regY = 50;
evt.target.addChild(this.jetons);
this.target_arr.push(evt.target);
现在,我将如何移除这些硬币:
this.target_arr[this.target_arr.length].removeChild(this.coin);
我的问题是我无法从10个容器中取出硬币。
我做错了什么?我在这里看到的问题在于您试图操纵的数组索引的位置: 第一阶段 如果使用push将此数据添加到数组中,数据将添加到索引的末尾 比如说:
var a=[]; //a.length would be 0 and you can't position any index inside
现在,当您向其推送一些数据时:
a.push(1);//a.length=1
[ 1 ]
^
index:0
a.push(2);//a.length=2
[ 1 , 2 ]
^ ^
index:0 1
a.push(3);//a.length=3
[ 1, 2, 3 ]
^ ^ ^
index:0 1 2 //when trying to make that a[a.length]
//would give error as the maximum position
//reside in the index 2 not 3
因此:
this.target_arr[this.target_arr.length].removeChild(this.coin);
应该是这样的:
this.target_arr[this.target_arr.length-1].removeChild(this.coin);
第二阶段
您缺少的是:
this.coin_array.pop(this.coin);
this.target_arr.pop(evt.target);
删除子节点时删除最新元素以缩小阵列
因为在内存中,你的数组仍然由10个元素组成,所以你应该在删除图像时同时弹出最新的元素来缩小它“我无法从10个容器中删除硬币。”我没有得到多少这意味着什么?我在舞台上有10个形状,每个形状都有一个容器。因此,如果我点击第一个形状,硬币将被添加到第一个容器中,依此类推。我希望你现在明白我的问题的意思。我想问题是你不能按顺序取出硬币,是吗?是的,这是我的问题,因为我可以单击第一个形状,而不是第三个形状或最后一个形状。好的,现在清除,从代码中看不到这是什么。target\u arr指的是什么?非常感谢你救了我一天:)我为此挣扎了一段时间。现在它工作得很好!如果这有助于你提高投票率,我想你现在可以提高投票率了:)