Привет сумасшедшие массивы!
Что же случилось? А все просто, в справке написано: var oneArray:Array = new Array(«a», «b», «c»); типо вот у нас массив, с тремя элементами, ну клево, возрадуемся мощности технологий, а вот мне надо создать массив не с элементами «a», «b», «c», а с элементами 1, 2, 3, пожалуйста: var oneArray:Array = new Array(1, 2, 2); легко, вот вам массив с тремя элементами.
Теперь совсем «не тривиальная задача», нужен массив с одним элементом равный 1, чтобы oneArray[0] = 1, ну чтож, делаем по предыдущей схеме var oneArray:Array = new Array(1); ожидая, что oneArray[0] = 1, aн нет, oneArray[0] = undefined, чтобы вы думали? Конструкция new Array(1) создает массив единичной длинны, и неопределенным 0 элементом. Выход: var oneArray:Array = [1];
Час искал какого-ж хрена не работает, расстроен.
Если действовать по аналогии, как описана в посте, то попасться на такую ошибку просто. Но ведь ничего «сумасшедшего» в этой конструкции нет.
Класс может иметь несколько конструкторов, нужно просто помнить об этом. Компилятор же будет выбирать наиболее «подходящий» конструктор.
Да и в самом хелпе написано:
Array(numElements:int = 0)
Lets you create an array of the specified number of elements.
Array(… values)
Lets you create an array that contains the specified elements.
@Bright
Согласен, но конструктор вызывался следующим образом new Array (ActionItem.SELL_ITEM), поэтому баг и ловился долго:)
@Snut
Ага, такие баги ооочень долго ловятся =) И написано вроде все правильно, а работает все равно не так %)
@Bright
Вот именно:)
A rolling stone is worth two in the bush, thanks to this artilce.
Apparently this is what the esteemed Willis was talkin’ ’bout.
None can doubt the vetaicry of this article.
We covd’lue done with that insight early on.
That’s a crrakecjack answer to an interesting question
Girl, I feel ya. I completely understand this post.For me—— to make plans on the spur of the moment & follow through with them. Rather than having too much to do (too tired, too expensive, whatever), and trying to think of a way to get out of the obligation.just to shake off this mantle of responsibliity, just for a little while.
This is a most useful contribution to the debate