Получить индекс в массиве нажатого элемента в actionscript - PullRequest
0 голосов
/ 10 августа 2011

Я пытаюсь создать виртуальную клавиатуру.

У меня есть класс VirtualKeyboard, который содержит массив под названием клавиатура из 26 мувиклипов, каждый из которых представляет букву.

В основном классе я создаю объект класса VirtualKeyboard и добавляю eventlistener к нему при нажатии на букву.

Я пробовал это в обработчике событий:

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

Но index всегда возвращает значение 4294967295.

Как узнать, какая буква была нажата, я имею в виду индекс в массиве клавиатуры, соответствующий этой букве?

Тот же код работает правильно, если я поместил его в класс VirtualKeyboard, но не из основного класса.

1 Ответ

3 голосов
/ 10 августа 2011

4294967295 равно 2 ^ 32 - 1. Это то, что происходит, когда вы назначаете -1 для uint.Это означает, что значение не найдено.

Рекомендации:

  • Поскольку indexOf возвращает int, используйте int.В любом случае, это быстрее.
  • Используйте Векторы, если можете, таким образом, вы можете быть уверены, что все принадлежат к одному классу.
  • Является ли virtualKeyboard.keyboard массивом объектов DisplayObject или массивстрок или чисел?Вы должны убедиться, что сравниваете яблоки с яблоками, а не яблоки с козами (также, почему я рекомендую Вектор).
  • Не применяйте объект к объекту.AS3 имеет твердотельную систему - используйте ее.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...