Arrays 使用推送和拼接的奇怪阵列行为

Arrays 使用推送和拼接的奇怪阵列行为,arrays,actionscript-3,flash,Arrays,Actionscript 3,Flash,我有一张满是mc_卡的页面,希望用户选择将哪些卡添加到他们的卡片组中 单击一张卡,该卡的CardSelected=true 再次单击并选择CardSelected=false 这个很好用 选择卡后,帧编号存储在阵列中。每张卡片都在一个单独的框架上,没有重复的 Main.cardArray.push(this.currentFrame); 再次单击后,我想从阵列中删除该帧编号: Main.cardArray.splice(this.currentFrame, 1); 在我拼接阵列之后,我跟踪它

我有一张满是mc_卡的页面,希望用户选择将哪些卡添加到他们的卡片组中

单击一张卡,该卡的CardSelected=true

再次单击并选择CardSelected=false

这个很好用

选择卡后,帧编号存储在阵列中。每张卡片都在一个单独的框架上,没有重复的

Main.cardArray.push(this.currentFrame);
再次单击后,我想从阵列中删除该帧编号:

Main.cardArray.splice(this.currentFrame, 1);
在我拼接阵列之后,我跟踪它,我得到了奇怪的结果。有时它的工作原理与我预期的一样,但它会删除错误的数字,有时根本不会删除它们。

splice()以另一种方式工作,您可以尝试使用它。 以下是声明:

splice(startIndex:int, deleteCount:uint, ... values):Array

因此,第一个arg-数组中要删除的开始索引,第二个arg-必须从开始索引中删除多少元素。

我想我自己通过添加indexOf(this.currentFrame)解决了这个问题,但我仍然不明白为什么第一个方法不起作用。一点可编译代码形式的上下文(仅相关部分!)会有用的。更多关于这个。顺便问一下,你指的是什么编程语言?第一个参数是删除对象的索引。你把自己搞糊涂了,因为你存储数字,把它们和索引搞混了。谢谢。我现在明白了。