Показать сообщение отдельно
Старый 05.12.2006, 01:34
dacino вне форума Посмотреть профиль Отправить личное сообщение для dacino Найти все сообщения от dacino
  № 3  
Ответить с цитированием
dacino

Регистрация: Nov 2006
Сообщений: 149
Отправить сообщение для dacino с помощью ICQ
__etc - поясни, как обойтись одной, тут уже красота кода, черт с ней, мне пока что б заработало, писал под две рекурсии вот первая - должна искать верхний "уровень"
Код:
function heard(l_mc:MovieClip):MovieClip{
		var d:Number = l_mc.getNextHighestDepth();
		var el = null, nel = null;
		for(var i = 0; i<d; i++){
			el = l_mc.getInstanceAtDepth(i);
			if(el instanceof MovieClip){
				var ed:Number = el.getNextHighestDepth();
				for(var j = 0; j<ed; j++){
					nel = el.getInstanceAtDepth(j);
					if(nel instanceof MovieClip){
						heard(nel);						
					}					
				}
				return el;//? где это должно быть чтоб результат был правильный
			}
		}
	}
в чужом коде всегда разбираться западло, расказываю как могу:
есть главный мув на нем еще два - один(на нем создаются мувы с TextField), - второй(на нем будут мувы для рисования знаков дроби, корня и т.д.), вот на если у нас рисуется дробь, то на первом муве создается пустой мув, на нем еще два с текстовыми полями, если в поле находится курсор и добавить еще одну дробь - на предке этого поля создастса еще один мув с двумя другими+TextField, и т.д.
степень вложенности зависит от извращенности пользователя, дак вот надо найти самый верхний, для чего служит функция heard, но она рекурсивная из нее формируется стек, т.е последний блок выполняется первым, и результатом является мув возрашенный первым блоком(последним выполненым), а мне требо, чтоб последним(который выполняется первым).
- надеюсь не доконца всех запутал, проще в исходнике посмотреть структуру клипов.