![]() |
|
||||||||||
|
|||||
|
Регистрация: Jan 2011
Сообщений: 200
|
Использую массив как стек событий для пользователя в формате
когда приходит какое-либо событие, я проверяю, ждет ли юзер какое либо событие, если есть совпадение по id, то удаляю его из массива-стека, сую во временный, а далее во временном идет проверка на типы, т.к. событий может быть несколько. ну и далее по типам выполняется нужное. код поиска по массиву такой: var eArray:Array = new Array(); for(var i:int = 0; i < playersEvents.length; i++){ if(playersEvents[i]['ePlayer'] == playerId){ eArray.push(playersEvents[i]['eOptions']); playersEvents.splice(i, 1); } } return eArray; допустим событие для меня находится в 1 и 2 индексе массива. когда я вытягиваю 1 и делаю splice, то 2ой индекс автоматически становится 1ым, i инкрементируется и к нему не возвращается, а идет ко 2му индексу, который раньше был третьим. т.е. просто перескакивает через второе мое событие. как можно сделать так, чтобы событие после заключения во временный массив удалялось, но цикл шел дальше? есть идея сделать так: Т.е. инкрементим, если это к нам не относится, если относится, то удаляем и проверяем снова данный элемент. Рационально ли это? |
|
|||||
|
Регистрация: Jan 2011
Сообщений: 200
|
спасибо, этот вариант лучше)
|
![]() |
![]() |
Часовой пояс GMT +4, время: 19:14. |
|
|
« Предыдущая тема | Следующая тема » |
|
|