|
|
|||||
Регистрация: Jul 2010
Сообщений: 63
|
Странная проблема с циклом for
Пишу прогу, состоящую из перетаскиваемых мышкой прямоугольников (класс Block) и 5 зон.
У каждой зоны есть массив BlockArray, в котором содержатся блоки. C помощью мышки, можно перетащить блок в другую зону, и он удалится из массива первой (остальные сдвинутся на пустое место) и добавится в конец массива второй. У класса Block есть переменные vps (зона, в которую он вписан в данный момент) и v_num (его позиция в массиве этой зоны). У класса Zone - переменная Numb (количесво блоков в зоне + 1). Так вот, задумал я написать функцию, которая удаляет все блоки, и грузит новые, заранее сохраненные в Xml. До этого были функции DeleteBlock(block) (удаляющая 1 блок) и LoadBlock() (грузящая все блоки из файла). public function DeleteBlock(block) { Zones[block.vps].BlockArray[block.v_num] = 0 trace("vps"+block.vps) Sdvig(Zones[block.vps].BlockArray, block.v_num, Zones[block.vps].Numb) trace("Numb"+Zones[block.vps].Numb) Zones[block.vps].Numb-=1 Blocks[block.id] = 0 Sdvig(Blocks, block.id, BlockCount) trace("BlockCount"+BlockCount) BlockCount-=1 block.removeEventListener(MouseEvent.MOUSE_DOWN, block.StartDrag) try {RootClass.removeChild(block)} catch(err) {RootClass.addChildAt(block, 0)} } public function LoadScan() { trace("BLC"+BlockCount) for (var j = 1; j < BlockCount; j++) { DeleteBlock(Blocks[j]) trace("джей"+j) } trace("LoadScan") trace(Zones[1].Numb) trace(Zones[2].Numb) trace(Zones[3].Numb) trace(Zones[4].Numb) trace(Zones[5].Numb) trace(Zones[2].BlockArray) trace(Zones[3].BlockArray) trace(Blocks) trace(" ") LoadBlock() } Попытка запуска и подключения к проигрывателю по URL-адресу E:/Паша/SUV/SUV-app.xml [SWF] SUV.swf - 10783 байт после декомпрессии BLC2 vps3 Numb2 BlockCount2 джей1 LoadScan 1 1 1 1 1 ,0,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, BLC5 vps2 Numb2 BlockCount5 джей1 vps4 Numb2 BlockCount4 джей2 LoadScan 1 1 2 1 2 ,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,[object Block],,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,[object Block],,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, TypeError: Error #1010: A term is undefined and has no properties. at Zone/Vizualize()[E:\Паша\SUV\Zone.as:52] at SUV/TotalVizualize()[E:\Паша\SUV\SUV.as:413] at SUV/LoadBlock()[E:\Паша\SUV\SUV.as:394] at SUV/LoadScan()[E:\Паша\SUV\SUV.as:364] at SUV/$construct/MultikeyAction() Но, как видно по выводу, BLC5 говорит о том, что BlockCount = 5, но там присутствует только джей1 и джей2, т.е. цикл for (j = 1; J < 5; j++) выполнился только 2 раза! Подскажите, пожалуйста, где может быть ошибка. И прошу не ругать за нерациональный и не красивый код, я только учусь. И огромное спасибо, что прочитали мой "эпос") |
|
|||||
Регистрация: Nov 2010
Сообщений: 497
|
Цитата:
|
|
|||||
Регистрация: Jul 2010
Сообщений: 63
|
ох, спасибо, ты меня спас)
|
Часовой пояс GMT +4, время: 18:13. |
|
« Предыдущая тема | Следующая тема » |
Теги |
Action script 3.0 , ошибка |
|
|