Показать сообщение отдельно
Старый 10.03.2014, 13:03
Hauts вне форума Посмотреть профиль Отправить личное сообщение для Hauts Посетить домашнюю страницу Hauts Найти все сообщения от Hauts
  № 3  
Ответить с цитированием
Hauts
 
Аватар для Hauts

блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
Отправить сообщение для Hauts с помощью ICQ Отправить сообщение для Hauts с помощью Skype™
Alexej, вам не обязательно хранить ссылки на капли в массиве.

Вам массив вообще не нужен. Если сделать управление падением капли на самой капле.

То есть создаете ваши капли, не записываете их ни в какой массив. А каждой капле на onEnterFrame ставите код ее падения.

Код AS1/AS2:
_root.createEmptyMovieClip("watefall_mov", 1);
_root.watefall_mov._x = 400;
_root.watefall_mov._y = 10;
 
var dropsCounter = 0;
var totalDrops = 1000;
function drop_fun():Void {
	if (dropsCounter<=totalDrops) {
		dropsCounter++;
		var newDrop = _root.watefall_mov.attachMovie("drop_mov", "drop_"+dropsCounter, dropsCounter);
		newDrop.someCoeff = (totalDrops-dropsCounter)*0.1; // тут подправить, видимо
                newDrop.onEnterFrame = dropOnEnterFrame;
	} else {
            clearInterval(createDropInterval)
        }
}
function dropOnEnterFrame():Void {
	this._y += this.someCoeff+0.1;
	this._height += this._height*0.008;
	this._width += this._width*0.005;
	if (this._y>=700) {
		delete this.onEnterFrame;
		removeMovieClip(this);
	}
};
var createDropInterval = setInterval(drop_fun, 200);
А если уж и задуряться с массивами, то на onEnterFrame будет что-то типа такого:
Код AS1/AS2:
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) {
			Arr[ii].deleteFlag = true;
		}
	}
        for(var k=0; k < Arr.length; k++){
            if(Arr[k].deleteFlag){
                Arr[k].removeMovieClip();
                Arr.splice( k, 1 );
                k--;
            }
        }
};
То есть пометили каплю, что ее нужно удалить, подвинули все капли, а потом пробежались по всему массиву с поиском элементов, которые нужно удалить.

P.S. В коде могу ошибаться, в браузере пишу.
__________________
hauts.ru