Показать сообщение отдельно
Старый 15.09.2006, 13:20
Ulya вне форума Посмотреть профиль Отправить личное сообщение для Ulya Найти все сообщения от Ulya
  № 1  
Ответить с цитированием
Ulya

Регистрация: Aug 2006
Адрес: msk
Сообщений: 100
Отправить сообщение для Ulya с помощью ICQ
По умолчанию и снова массив мувиков: нужен совет

Уважаемые гуру флэша.
Я тут уже всю голову сломала, что не так. Подскажите.

Есть массив объектов с набором полей. Из каждого элемента массива создается мувик и присоединяется к массиву мувиков. Массив объектов изменяется во времени. То есть, если массив содержит 5 объектов, мы их отрисовываем, запихиваем мувики в массив мувиков M, массив с исходными объектами обнуляем. Зтем через несколько секунд спрашиваем: а не стал ли массив объектов не 0. Если там что-то есть, создаем опять из него мувики, запихиваем в массив М.
Проблема в том, что после зоздания пустого мувика с целью отрисовки, массив мувиков M ведет себя странно, а именно удаляет по элементу массива. ПОЧЕМУ???
Код:
function draw_sms() {
	trace("_root.smsUncheckedArray: "+_root.smsUncheckedArray);
	for (g=0; g<_root.smsUncheckedArray.length; g++) {
		i = _root.M.length;
		trace("i="+i);
		trace("g="+g);
		trace("до "+_root.M);
		_root.createEmptyMovieClip("sms" +i, i);
		trace("после создания смс "+_root.M);		_root.M[_root.M.length] = (eval("sms"+i));
		trace("после подсоединения:"+_root.M);
		_root.M[_root.M.length-1]._x = 2;
		with (eval("sms"+i)) {
			eval("sms"+i).id = _root.smsUncheckedArray[g].id;
			T1 = "Дата: "+_root.smsUncheckedArray[g].date+"\nНик: "+_root.smsUncheckedArray[g].nick+"\nНомер: "+_root.smsUncheckedArray[g].subno;
			T2 = _root.smsUncheckedArray[g].text;
			T = T1+T2;
			var metrics1:Object = my_fmt.getTextExtent(T1, sms_w);
			var metrics2:Object = my_fmt.getTextExtent(T2, sms_w);
			createTextField("my_txt", i+700, 0, 0, sms_w, metrics1.textFieldHeight+1);
			//////////trace("высота шапки "+metrics1.textFieldHeight+1);
			createTextField("my_txt1", i+900, 0, metrics1.textFieldHeight+1, sms_w, metrics2.textFieldHeight+1);
			//////////trace("высота текста "+metrics2.textFieldHeight+1);
			my_txt.visible = true;
			my_txt.multiline = true;
			my_txt.wordWrap = true;
			my_txt.type = "dynamic";
			my_txt.border = true;
			my_txt.text = html;
			my_txt.htmlText = T1;
			my_txt1.visible = true;
			my_txt1.multiline = true;
			my_txt1.wordWrap = true;
			my_txt1.type = "dynamic";
			my_txt1.border = true;
			my_txt1.background = true;
			my_txt1.backgroundColor = 0xF9F8F2;
			my_txt1.text = html;
			my_txt1.htmlText = T2;
			// 
			if (i eq 0) {
				_root.M[i]._y = 25;
			} else {
				trace("i="+i);
				_root.M[i]._y = _root.M[i-1]._y+_root.M[i-1]._height+2;
			}
			eval("my_txt").setTextFormat(my_fmt);
			eval("my_txt1").setTextFormat(my_fmt);
			attachMovie("btM", "btM", 100+this.getNextHighestDepth());
			attachMovie("btY", "btY", 200+this.getNextHighestDepth());
			attachMovie("btN", "btN", this.getNextHighestDepth());
			attachMovie("btOK", "btOK", 300+this.getNextHighestDepth());
			attachMovie("btUndo", "btUndo", 755+this.getNextHighestDepth());
			btOK.enabled = false;
			btOK._visible = false;
			btUndo.enabled = false;
			btUndo._visible = false;
			btOK._x = _width-45;
			btOK._y = 4.5;
			btOK._height = 20;
			btOK._width = 20;
			btUndo._x = _width-23;
			btUndo._y = 4.5;
			btUndo._height = 20;
			btUndo._width = 20;
			btY._x = _width-70;
			btY._y = 4.5;
			btY._height = 20;
			btY._width = 20;
			//
			btM._x = _width-47;
			btM._y = 4.3;
			btM._height = 20;
			btM._width = 20;
			//
			btN._x = _width-24;
			btN._y = 4.5;
			btN._height = 20;
			btN._width = 20;
			//
			//
			mask._width = Stage.width;
			mask._height = Stage.height-49;
			mask._x = 0;
			mask._y = 25;
			mask.duplicateMovieClip("mask"+i, i+10000);
			mask._visible = false;
			eval("sms"+i).setMask(eval("mask"+i));
		}
	}
	_root.smsUncheckedArray.length = 0;
	trace("Массив объектов после обнуления: "+_root.smsUncheckedArray);
	this.st_hide_uncheked.text = ("В очереди: "+_root.M.length+" смс");
}

И то, что даёт трэйс:

root.smsUncheckedArray: [object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
i=4
g=0
до _level16394.sms0,_level16394.sms1,_level16394.sms2,_level16394.sms3
после создания смс _level16394.sms0,,_level16394.sms2,_level16394.sms3
после подсоединения:_level16394.sms0,,_level16394.sms2,_level16394.sms3,_level16394.sms4