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

时间:2011-08-10 04:24:42

标签: arrays actionscript

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

我有一个类VirtualKeyboard,其中包含一个名为26个动画片段键盘的数组,每个数组代表一个字母。

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

我在事件处理程序中尝试了这个:

var objectClicked:Object = event.currentTarget;
var index:uint = virtualKeyboard.keyboard.indexOf(objectClicked);

但是index总是返回值4294967295。

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

如果我将它放在VirtualKeyboard类中,而不是来自主类,则相同的代码正常工作。

1 个答案:

答案 0 :(得分:3)

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

建议:

  • 当indexOf返回一个int时,使用int。反正它更快。
  • 如果可以,请使用向量,这样就可以确保所有内容都属于同一类。
  • virtualKeyboard.keyboard是一个DisplayObjects数组,还是一个字符串或数字数组?你必须确保你比较苹果和苹果,而不是苹果和山羊(也是我推荐Vector的原因)。
  • 不要转换为Object。 AS3有一个固体类型系统 - 使用它。