Эрк, просто прочитайте учебник, на который вы ссылаетесь, и изменение с Vector
на Array
(которое я не рекомендую), кажется, меньше всего вас беспокоит. Я предлагаю вам оставить его как Vector
(это более эффективно, и статическая типизация ничего не дает, но помогает в этом случае) и оставить большую часть кода как есть. Код, который нужно изменить, таков:
//Add an item number to the item's text field
item.itemText.text=i.toString();
item.itemText.text
на самом деле содержит String
, так что вы там в чистом виде. Происходит то, что вы конвертируете i
(индекс этого Item
в векторе) в String
, чтобы его можно было отобразить. Теперь вы должны изменить это так, чтобы оно показывало то, что вы хотите.
Существует множество способов сделать это - поскольку вы используете программу Flash, вы можете использовать встроенные функции! Поскольку Item
расширяет MovieClip
, вы можете заменить строку ранее на:
//Changes the item's frame to the same as its index
item.gotoAndStop(i);
Затем в среде разработки (Flash) сделайте так, чтобы у каждого элемента меню была отдельная рамка.
Надеюсь, это поможет!
Я оставил в своем описании, как изменить Вектор на Массив ниже, на случай, если у вас есть причина для этого. Примечание: то, что я сказал выше, предполагает, что вы НЕ внесли эту модификацию.
Я не прочитал весь этот код, но похоже, что проблема здесь:
//This vector holds all the items
//(this could also be an array...)
var itemVector:Array.<Item>=new Array('1', '2', '3', '4', '5').<Item>;
Синтаксис .<Item>
работает только для векторов, поэтому вам нужно от него избавиться. Эта строка будет выглядеть так для массива:
var itemVector:Array = new Array('1', '2', '3', '4', '5');
Код может иметь больше проблем, но это конкретно относится к указанной вами ошибке.