Показать сообщение отдельно
Старый 10.03.2014, 01:21
Alexej вне форума Посмотреть профиль Отправить личное сообщение для Alexej Найти все сообщения от Alexej
  № 1  
Ответить с цитированием
Alexej
 
Аватар для Alexej

Регистрация: Mar 2014
Сообщений: 15
Question Переприсваивание элементов массива

Здравствуйте! Создаю водопад для игры.
Имеется мувик:drop_mov
и код:
Код AS1/AS2:
_root.createEmptyMovieClip("watefall_mov", 1);
_root.watefall_mov._x = 400;
_root.watefall_mov._y = 10;
i = 0;
var Arr:Array = new Array();
function drop_fun():Void {
	if (i<=1000) {
		i++;
		Arr[i] = _root.watefall_mov.attachMovie("drop_mov", "drop_"+i, i);
		Arr[i]._x = 0;
		Arr[i]._y = 0;
	}
}
onEnterFrame = function ():Void {
	for (ii=0; ii<=i; ii++) {
		a = (i-ii)*0.1;
		Arr[ii]._y += 1*a+0.1;
		Arr[ii]._height += Arr[ii]._height*0.008;
		Arr[ii]._width += Arr[ii]._width*0.005;
		if (Arr[ii]._y>=700) {
			removeMovieClip(Arr[ii]);
		}
	}
};
setInterval(drop_fun, 200);
В общем всё работает, я удаляю элементы массива по достижении определённого уровня, но значения i и ii достигают огромных размеров, а они все обрабатываются циклом(это очень грузит игру).
Нужно что бы при достижении каплей координаты по y>=700 не только удалялся этот экземпляр, но и в элемент массива, в котором лежал данный экземпляр присваивался очередной экземпляр и всё начиналось с начало.
Вложения
Тип файла: swf waterfall.swf (1.4 Кб, 45 просмотров)