Arrays 获取actionscript中单击元素数组中的索引

Arrays 获取actionscript中单击元素数组中的索引,arrays,actionscript,Arrays,Actionscript,我正在尝试创建一个虚拟键盘 我有一个类VirtualKeyboard,它包含一个名为keyboard的数组,由26个movieclips组成,每个movieclips代表一个字母 在main类中,我创建了类VirtualKeyboard的对象,并在单击字母时在其上添加了一个eventlistener 我在事件处理程序中尝试了以下操作: var objectClicked:Object = event.currentTarget; var index:uint = virtualKeyboard.

我正在尝试创建一个虚拟键盘

我有一个类
VirtualKeyboard
,它包含一个名为keyboard的数组,由26个movieclips组成,每个movieclips代表一个字母

在main类中,我创建了类
VirtualKeyboard
的对象,并在单击字母时在其上添加了一个
eventlistener

我在事件处理程序中尝试了以下操作:

var objectClicked:Object = event.currentTarget;
var index:uint = virtualKeyboard.keyboard.indexOf(objectClicked);
但是
索引总是返回值4294967295

我怎么知道单击了哪个字母,我指的是键盘数组中与该字母对应的索引


如果我将同一代码放在
VirtualKeyboard
类中,但不是从主类中,则该代码工作正常。

4294967295
是2^32-1。这就是将-1分配给
uint
时发生的情况。这意味着找不到该值

建议:

  • 由于indexOf返回一个int,所以使用int。无论如何,它更快
  • 如果可以的话,使用向量,这样你就可以确保所有东西都属于同一类
  • 虚拟键盘是DisplayObjects的数组,还是字符串或数字的数组?你必须确保你是在比较苹果和苹果,而不是苹果和山羊(这也是我推荐Vector的原因)
  • 不要投反对票。AS3有一个实体类型系统——使用它

    • 4294967295
      是2^32-1。这就是将-1分配给
      uint
      时发生的情况。这意味着找不到该值

      建议:

      • 由于indexOf返回一个int,所以使用int。无论如何,它更快
      • 如果可以的话,使用向量,这样你就可以确保所有东西都属于同一类
      • 虚拟键盘是DisplayObjects的数组,还是字符串或数字的数组?你必须确保你是在比较苹果和苹果,而不是苹果和山羊(这也是我推荐Vector的原因)
      • 不要投反对票。AS3有一个实体类型系统——使用它